方式一:有缓存(图片所占用的内存会一直停留在程序中)
+ (UIImage *)imageNamed:(NSString *)name;
name是图片的文件名
一般情况下我们是这样加载图片的:
UIImage *image = [UIImage imageNamed:@”icon.png”];
这种方法在application bundle的顶层文件夹寻找由供应的名字的图象。如果找到,装载到iPhone系统缓存图象。那意味图片是放在内存里的,如果图很多很大那么运行起来要占很大的内存空间的
方式二:无缓存(图片所占用的内存会在一些特定操作后被清除)
+ (UIImage *)imageWithContentsOfFile:(NSString *)path
- (id)initWithContentsOfFile:(NSString *)path;
path是图片的全路径
所以,可以这么做
NSString *path = [[NSBundle mainBundle] pathForResource:@”icon” ofType:@”png”];
UIImage *image = [UIImage imageWithContentsOfFile:path];
这样做就没有缓存了,但是如果有高清图,也就是@2x的,就不能自动获取到了,自己把握吧
网友评论