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:
需要的时候 再加载。