标签:
创建UIImage的两种方法
UIImage *image = [UIImage imageNamed:imageNmae];
UIImage *image = [UIImage imageWithContentsOfFile:imageNmae];
- imageNamed这个方法会自动缓存创建的图片
- 如果图片不是经常使用(比如汤姆猫), 并且图片非常占用资源, 那么不建议使用imageNamed方法加载图片
- 如果是通过[[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;
- 规律一:
但凡取值中包含Scale单词的, 都会对图片进行拉伸(缩放)
但凡取值中没有出现Scale单词的, 都不会对图片进行拉伸
UIViewContentModeScaleToFill,
+ 会按照UIImageView的宽高比来拉伸图片
+ 直到让整个图片都填充UIImageView为止
+ 因为是按照UIImageView的宽高比来拉伸, 所以图片会变形
- 规律二:
但凡取值中包含Aspect单词的, 都会按照图片的宽高比来拉伸
因为是按照图片的宽高比来拉伸, 所以图片不会变形
UIViewContentModeScaleAspectFit
+ 会按照图片的宽高比来拉伸
+ 要求整张图片都必须在UIImageView的范围内
+ 并且宽度和高度其中一个必须和UIImageView一样
+ 居中显示
UIViewContentModeScaleAspectFill,
+ 会按照图片的宽高比来拉伸
+ 要求整张图片必须填充UIImageView
+ 并且图片的宽度或者高度其中一个必须和UIImageView一样
标签:
原文地址:http://www.cnblogs.com/chglog/p/4647058.html