UIImageView的集中初始化方法

1.使用imageWithContentsOfFile:初始化

UIImage*image = [UIImageimageWithContentsOfFile:[[NSBundlemainBundle]pathForResource:@"1.png"ofType:nil]];

UIImageView*imageView = [[UIImageViewalloc]init];

imageView.frame=CGRectMake(50,50,275,275);

imageView.image= image;

imageView.backgroundColor= [UIColoryellowColor];

[self.viewaddSubview:imageView];

2,使用initWithContentsOfFile:初始化

UIImage*image1 = [[UIImagealloc]initWithContentsOfFile:[NSStringstringWithFormat:@"%@/1.png",[[NSBundlemainBundle]resourcePath]]] ;

UIImageView*imageView1 = [[UIImageViewalloc]init];

imageView1.frame=CGRectMake(50,350,275,275);

imageView1.image= image1;

imageView1.backgroundColor= [UIColoryellowColor];

[self.viewaddSubview:imageView1];

3,使用imageNamed:初始化

UIImage*image2 = [UIImageimageNamed:@"1.png"];

UIImageView*imageView2 = [[UIImageViewalloc]init];

imageView2.frame=CGRectMake(50,350,275,275);

imageView2.image= image2;

imageView2.backgroundColor= [UIColoryellowColor];

[self.viewaddSubview:imageView2];


我主要想讲一下imageNamed:和前两种分别的使用情况:

当一些图片占十几KB而已并且常用的时候,建议使用imageNamed:

imageNamed:这个方法会将图片缓存到内存中 ,使用图片时会去寻找缓存,如果找不到才去NSBundle中找,找到后缓存,返回对象。找不到返回nil

但是有个弊端:程序结束的时候,这个图片才被释放掉,所以占用的内存很多。

前两种是真接找路径中的图片,找不到返回nil.若使用的图片是高清大图不常用的时候,建议使用imageWithContentsOfFile:或者initWithContentsOfFile:

需要的时候 再加载。

你可能感兴趣的:(UIImageView的集中初始化方法)