背景
某個頁面上有一個TableView,TableView上的每個cell有多張圖片,并且圖片資料很大,當(dāng)滑動頁面的時候出現(xiàn)崩潰或者卡的情況。

多圖.jpg
卡或崩潰原因
SDWebImage加載的圖片占用內(nèi)存太多造成內(nèi)存泄漏從而導(dǎo)致程序崩潰。
解決方法
1.cell上加載的圖片要加載小圖,因此需要后臺返回給我們一組縮略圖。(微信朋友圈頁面的效果)
2.修改SDWebImage內(nèi)部代碼,將一些大圖進行壓縮。

0.添加代碼.png
+(UIImage *)compressImageWith:(UIImage *)image{
float imageWidth = image.size.width;
float imageHeight = image.size.height;
float width = 640;
float height = image.size.height/(image.size.width/width);
float widthScale = imageWidth /width;
float heightScale = imageHeight /height;
// 創(chuàng)建一個bitmap的context
// 并把它設(shè)置成為當(dāng)前正在使用的context
UIGraphicsBeginImageContext(CGSizeMake(width, height));
if (widthScale > heightScale) {
[image drawInRect:CGRectMake(0, 0, imageWidth /heightScale , height)];
}else {
[image drawInRect:CGRectMake(0, 0, width , imageHeight /widthScale)];
}
//從當(dāng)前context中創(chuàng)建一個改變大小后的圖片
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
//使當(dāng)前的context出堆棧
UIGraphicsEndImageContext();
return newImage;
}
3.使用AFNetWorking中“UIImageView+AFNetWorking”分類進行圖片的加載。
****本篇文章到這里就結(jié)束了,愿大家加班不多工資多,男同胞都有女朋友,女同胞都有男朋友。??****