iOS之性能优化·列表异步绘制
生活随笔
收集整理的這篇文章主要介紹了
iOS之性能优化·列表异步绘制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、前言
- iOS 所提供的 UIKit 框架,其工作基本是在主線程上進行,界面繪制、用戶輸入響應交互等。當大量且頻繁的繪制任務,以及各種業務邏輯同時放在主線程上完成時,便有可能造成界面卡頓、丟幀現象,即在 16.7ms 內未能完成 1 幀的繪制,幀率低于 60fps 黃金標準。
- 目前常用的 UITableView 或 UICollectionView,在大量復雜文本及圖片內容填充后,如果沒有優化處理,快速滑動的情況下易出現卡頓,流暢性差問題。
- 不依賴任何第三方 pod 框架,本文主要從異步線程繪制、圖片異步下載渲染等方面,盡可能優化 UITableView 的使用,提高滑動流暢性,讓幀率穩定在 60fps。
二、解決方案及優化亮點
① 方案分析
- 異步繪制任務收集與去重;
- 通過單例監聽 main runloop 回調,執行異步繪制任務;
- 支持異步繪制動態文本內容,減輕主線程壓力,并緩存高度減少 CPU 計算;
- 支持異步下載和渲染圖片并緩存,僅在可視區域渲染;
- 異步隊列并發管理,擇優選取執行任務;
- 發現 UITableView 首次 reload 會觸發 3 次的系統問題,初始開銷增大,待優化。
② 問題分析
- 異步繪制時機及減少重復繪制;
- 隊列的并發和擇優。
③ 過程分析
- 異
總結
以上是生活随笔為你收集整理的iOS之性能优化·列表异步绘制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python之超级好用的8个VS Cod
- 下一篇: Python之精心整理的50道入门练手习