UIImage是我们操作图片的一个类,而我们经常用UIImage imageNamed:@“图片名”获取一张图片,这种方法会找资源包中下的图片,加载一次后就一直在缓存中,性能比较好,而另外一种方法[[UIImage alloc] initWithContentsOfFile:@"全路径"]每次都会通过全路径获取图片。
类型 | 是否有缓存 | 使用场合 |
UIImageimageNamed:@“图片名” |
有缓存,多次调用返回的是相同对象 |
图片使用频率高 |
[[UIImage alloc] initWithContentsOfFile:@"全路径"] |
无缓存,每次调用返回的都是新对象 |
使用场合:图片是一次性使用 |
imageNamed访问bundle下面的图片
[UIImageimageNamed:@"images.bundle/1.png"] |
// mainBundle 指向的就是资源包 NSBundle *bundle = [NSBundlemainBundle]; //获得图片的全路径 NSString *path = [bundle pathForResource:@"sub_blue_add" ofType:@"png"];
UIImage *image = [[UIImagealloc] initWithContentsOfFile:path]; self.imageView.image = image; |
// 0.获取images.bundle的全路径 NSString *path = [[NSBundlemainBundle] pathForResource:@"images"ofType:@"bundle"]; // 1.加载images.bundle这个压缩包 NSBundle *bundle = [[NSBundlealloc] initWithPath:path];
// 2.获得images.bundle中所有png图片的全路径 NSArray *paths = [bundlepathsForResourcesOfType:@"png"inDirectory:nil]; |