iOS開發(fā)中利用SDWebImage加載多張大圖導(dǎo)致程序崩潰

背景

某個頁面上有一個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é)束了,愿大家加班不多工資多,男同胞都有女朋友,女同胞都有男朋友。??****

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,203評論 3 119
  • 從小就聽鎮(zhèn)上的老人說遠心亭去不得,去了會被芙蓉花精奪去心魂,變成瘋子! 可也奇怪,鎮(zhèn)上的人們都懼怕遠心亭,可偏偏不...
    十九師弟閱讀 356評論 8 3
  • 輕輕的一吻 告別了晚霞 張開懷,擁抱夜色 星馨點點 朦朧的霧色的月 我就這樣的看著你 幻想著能碰到你 終于忍不住伸...
  • 何謂鄉(xiāng)想,就是回到鄉(xiāng)下的感想。 北上廣容不下肉身,三四線城市放不下靈魂 我是個戀舊的人,對舊事物有很深的迷戀歡喜,...
    一生追夢的人閱讀 402評論 0 1
  • 敬愛的王院長、智慧的高管們、勤奮的南方家人們,大家晚上好,我是視光中心執(zhí)行部祁運騰,今天是2018年9月21日我的...
    祁運騰閱讀 124評論 0 1

友情鏈接更多精彩內(nèi)容