iOS學習--詳解UIView的 contentStretch屬性

目標

通過實例和圖片理解UIView的contentStretch屬性

方法

  • 通過一個圖片建立一個簡單的UIImageView
  • 設置它的contentStretch屬性
  • 修改它的frame屬性
  • 觀察

測試用的圖片:

新建一個 UIImageView:

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"grid.png"]];

保存它的一些屬性值備用 

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:

有一個“拉伸”區域:

和一個“固定”區域:

相關代碼:

https://gist.github.com/8038667a374da0f6a24d#file_content_stretch_test.m

圖片:

http://f.cl.ly/items/050w3k342y032F0E3n29/grid.png

原文地址:http://j0ris.tumblr.com/post/7345178587/uiview-contentstretch

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章