主要目的是為了記錄
問題描述:使用 UIImage *image = [UIImage imageNamed:@"阿拉伯風格曲.png"]; [_staffImageView setImage:image]; 造成內(nèi)存暴增,且退出當前界面默色,也調(diào)用了 dealloc 方法邑闺,但就是內(nèi)存不釋放见间。圖片 "阿拉伯風格曲.png " 大小只有668Kb首繁,但是尺寸 是1160X11900.
內(nèi)存暴增問題的解決:
重新繪制圖片,代碼如下诗充,就解決了內(nèi)存暴增的問題回俐。
+ (UIImage *)scaleGraphicsImage:(UIImage *)image{
UIImage *newImage;
if (image.size.width > 1024) { //分辨率大的則重繪逛腿,否則不重繪
//獲取原圖片寬高比
CGFloat sourceImageAspectRatio = image.size.width/image.size.height;
CGSize newSize = CGSizeMake(1024, 1024/sourceImageAspectRatio);
//重繪圖片
UIGraphicsBeginImageContext(newSize);
[image drawInRect:CGRectMake(0, 0, newSize.width,newSize.height)];
newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
} else {
newImage = image;
}
return newImage;
}
內(nèi)存不釋放問題的解決:
使用 UIImage *image = [UIImage imageNamed:@"阿拉伯風格曲.png"]; imageNamed 方法加載圖片 圖片內(nèi)存是一直 在內(nèi)存中的稀并。
所以要更換加載圖片的方式:如下
UIImage *image = [[UIImage alloc] initWithContentsOfFile:thePath];