码迷,mamicode.com
首页 > 其他好文 > 详细

UIImage,UIImageView的使用

时间:2015-07-15 06:30:52      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:

1.UIImage


 

创建UIImage的两种方法

UIImage *image = [UIImage imageNamed:imageNmae];

UIImage *image = [UIImage imageWithContentsOfFile:imageNmae];

- imageNamed这个方法会自动缓存创建的图片
- 如果图片不是经常使用(比如汤姆猫), 并且图片非常占用资源, 那么不建议使用imageNamed方法加载图片

 

2.UIImageView


 

- 如果是通过[[UIImageView alloc] init];创建的图片, 没有默认的宽高

- 但是如果是通过[[UIImageView alloc] initWithImage:image];创建的图片, 有默认的宽高
默认的宽高就是图片的宽高

 

创建一个UIImageView

方法一:

UIImage *image = [UIImage imageNamed:@"meinv.jpg"];

UIImageView *iv = [[UIImageView alloc] initWithImage:image];

方法二:

UIImageView *iv = [[UIImageView alloc] init];

 

设置相关属性

    iv.backgroundColor = [UIColor redColor];
     UIImage *image = [UIImage imageNamed:@"meinv.jpg"];
    iv.image = image;

 

修改控件的frame:

iv.frame = CGRectMake(0, 0, image.size.width, image.size.height);

iv.frame = (CGRect){{0, 0}, {image.size.width, image.size.height}};

 

- OC语法规定, 不能直接修改一个"对象"的"结构体属性"的"成员"

iv.frame.size = image.size;// 错误
先取出 --> 再修改 --> 重新赋值
CGRect tempFrame = iv.frame;
tempFrame.size = image.size;
iv.frame = tempFrame;

 

3.UIViewContentMode


 

技术分享

- 规律一:
但凡取值中包含Scale单词的, 都会对图片进行拉伸(缩放)
但凡取值中没有出现Scale单词的, 都不会对图片进行拉伸
UIViewContentModeScaleToFill,
+ 会按照UIImageView的宽高比来拉伸图片
+ 直到让整个图片都填充UIImageView为止
+ 因为是按照UIImageView的宽高比来拉伸, 所以图片会变形

 

- 规律二:
但凡取值中包含Aspect单词的, 都会按照图片的宽高比来拉伸
因为是按照图片的宽高比来拉伸, 所以图片不会变形

UIViewContentModeScaleAspectFit
+ 会按照图片的宽高比来拉伸
+ 要求整张图片都必须在UIImageView的范围内
+ 并且宽度和高度其中一个必须和UIImageView一样
+ 居中显示

UIViewContentModeScaleAspectFill,
+ 会按照图片的宽高比来拉伸
+ 要求整张图片必须填充UIImageView
+ 并且图片的宽度或者高度其中一个必须和UIImageView一样

 

UIImage,UIImageView的使用

标签:

原文地址:http://www.cnblogs.com/chglog/p/4647058.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!