方式一:有緩存(圖片所占用的內(nèi)存會(huì)一直停留在程序中)
+ (UIImage *)imageNamed:(NSString *)name;
name是圖片的文件名
一般情況下我們是這樣加載圖片的:
UIImage *image = [UIImage imageNamed:@”icon.png”];
這種方法在application bundle的頂層文件夾尋找由供應(yīng)的名字的圖象。如果找到,裝載到iPhone系統(tǒng)緩存圖象。那意味圖片是放在內(nèi)存里的,如果圖很多很大那么運(yùn)行起來(lái)要占很大的內(nèi)存空間的
方式二:無(wú)緩存(圖片所占用的內(nèi)存會(huì)在一些特定操作后被清除)
+ (UIImage *)imageWithContentsOfFile:(NSString *)path
- (id)initWithContentsOfFile:(NSString *)path;
path是圖片的全路徑
所以,可以這么做
NSString *path = [[NSBundle mainBundle] pathForResource:@”icon” ofType:@”png”];
UIImage *image = [UIImage imageWithContentsOfFile:path];
這樣做就沒(méi)有緩存了,但是如果有高清圖,也就是@2x的,就不能自動(dòng)獲取到了,自己把握吧