UIImageView xib裏面拉伸圖片

目標測試

經過實例和圖片理解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:

有一個「拉伸」區域:

和一個「固定」區域:

相關文章
相關標籤/搜索