AsyncDisplayKit

性能問(wèn)題

  • 網(wǎng)絡(luò)請(qǐng)求,大部分網(wǎng)絡(luò)請(qǐng)求都應(yīng)該使用后臺(tái)線程完成,如果你使用的是 AFNetworking、 SDWebImage 這些開(kāi)源緩存庫(kù),那么切換到后臺(tái)去請(qǐng)求網(wǎng)絡(luò)資源的操作都已經(jīng)默認(rèn)完成。

  • 本地?cái)?shù)據(jù)讀寫(xiě)和計(jì)算,當(dāng)你需要從閃存中讀取文件的時(shí)候,這些操作都應(yīng)該使用GCD或者NSThread切換至后臺(tái)線程中完成。

  • 圖像的處理,盡量使用合適的UIImage給予UIImageView使用,何謂合適?已經(jīng)提前剪裁、縮放好的圖片是最佳的,否則當(dāng)UIImage賦予UIImageView.image的時(shí)候,iOS會(huì)有不必要的計(jì)算開(kāi)銷,而這些開(kāi)銷卻是可以提前手動(dòng)緩存起來(lái)的。

  • Layer 屬性的謹(jǐn)慎選擇,不合理的 Layer 特效(陰影、圓角)都會(huì)使流暢的滑動(dòng)變成卡頓(非常重要)。

  • 少用 UIView.backgroundColor = UIColor.clearColor(),透明的背景會(huì)加劇卡頓。

  • 文字的渲染,你可能不知道,文字的渲染也是需要開(kāi)銷的。一般來(lái)說(shuō),文字渲染的開(kāi)銷非常小,甚至不能察覺(jué)到。但是,當(dāng)一個(gè)UILabel被賦予大段富文本文字后,開(kāi)銷就會(huì)非常大。

  • 圖像的渲染,一個(gè)任何開(kāi)發(fā)者、幾乎所有庫(kù)(包括SDWebImage)都無(wú)法解決的問(wèn)題,圖像在UIImageView中的渲染開(kāi)銷,并且圖像的渲染只能在主線程中執(zhí)行。

前五點(diǎn)都是可以在 UIView 的基礎(chǔ)上解決的,如果前五點(diǎn)均優(yōu)化完成后,仍然無(wú)法解決卡頓問(wèn)題,則應(yīng)該使用 AsyncDisplayKit。

未完待續(xù)。。。

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

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

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