iOS控件 - - - UIImageView - - 图像控件
2017-12-14 本文已影响159人
罂粟之城
UIImageView控件是一种图像控件,是可以作为加载和展示图像的控件。
UIImageView基本使用
初始化控件: UIImageView *iv = [[UIImageView alloc]init];
设置图片: iv.image=[UIImage imageNamed:@"图片名.png/.jpg"];
设置控件属性: iv.layer.masksToBounds=YES;
iv.layer.cornerRadius=(width=height)/2.0f;
//设置保持图片位于frame的中间,使得图片不会被拉伸和压缩
iv.contentMode = UIViewContentModeCenter;
UIImageView控件除了和其它控件同样的操作之外,其他需要注意:
1. 加载图片使用最基本的“imageNamed:”方法,这一般使用于控件的背景图加载,如UIButton也有backgroundImage的设置,同样使用imageNamed:方法加载
2. 不过一些,如需要使用大量图片加载时,一般使用一些库去加载需要展示的图片,如SDWebImage(github:SDWebImage),FlyImage(github:FlyImage)。
UIImage -- imageNamed 和 imageWithContentsOfFile 区分
在 iOS 应用中加载图片通常有 - [UIImage imageNamed:] 和 -[UIImage imageWithContentsOfFile:] 两种方式。它们的不同在于前者会对图片进行缓存,而后者只是简单的从文件加载文件。
UIImage *img = [UIImage imageNamed:@"myImage"]; // caching
// or
UIImage *img = [UIImage imageWithContentsOfFile:@"myImage"]; // no caching
在整个程序运行的过程中,当你需要加载一张较大的图片,并且只会使用它一次,那么你就没必要缓存这个图片,这时你可以使用 -[UIImage imageWithContentsOfFile:],这样系统也不会浪费内存来做缓存了。
当然,如果你会多次使用到一张图时,用 - [UIImage imageNamed:] 就会高效很多,因为这样就不用每次都从硬盘上加载图片了。
如何判断UIImageView为空
UIImage *image = [UIImage imageNamed:@""];
CGImageRef cgref = [image CGImage];
CIImage *cim = [image CIImage];
//
if (cim == nil && cgref == NULL)
{
NSLog(@"no image");
} else {
NSLog(@"imageView has a image");
}