目標測試
經過實例和圖片理解UIView的contentStretch屬性spa
方法code
經過一個圖片創建一個簡單的UIImageVieworm
設置它的contentStretch屬性圖片
修改它的frame屬性內存
觀察it
測試用的圖片:grid
新建一個 UIImageView:方法
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"grid.png"]];
保存它的一些屬性值備用 im
CGSize imageSize;
imageSize.width = imageView.frame.size.width;
imageSize.height = imageView.frame.size.height;
CGSize stretchSize;
stretchSize.width = 50.0;
stretchSize.height = 100.0;
水平拉伸
設置 contentStretch
屬性(通常爲 0.0 到 1.0之間):
imageView.contentStretch = CGRectMake(0.0, 0.0, stretchSize.width/imageSize.width, stretchSize.height/imageSize.height);
水平拉伸:
imageView.frame = CGRectMake(10.0, 10.0, imageSize.width*1.2, imageSize.height);
這時拉伸的區域以下:
垂直拉伸
使用一樣的 contentStretch
, 圖片被垂直拉伸:
imageView.frame = CGRectMake(0.0, 0.0, imageSize.width, imageSize.height*1.2);
這時拉伸的區域以下:
兩個方向同時拉伸:
使用下面的 contentStretch值
:
imageView.contentStretch = CGRectMake(100.0/imageSize.width, 100.0/imageSize.height, stretchSize.width/imageSize.width, stretchSize.height/imageSize.height);
水平和垂直同時拉伸:
imageView.frame = CGRectMake(0.0, 0.0, 450.0, 450.0);
實際拉伸的區域是:
不要泄露內存:
[imageView release];
結論
對於給定的 contentStretch
:
有一個「拉伸」區域:
和一個「固定」區域: