tableView的優化

cell里的image使用SDWebimage,高清大圖用YYWebimage來下載緩存圖片

cell內部控件的層次結構盡量的少,使用drawRect畫,但是有一個問題,點擊事件沒辦法處理

cell內部所有顯示的數據提前準備好,盡量少的實時計算,不要在cell顯示的時候才去計算,先計算好,在刷新界面.

盡量少的使用富文本

時間格式化對象使用同一個

列表內部的子控件都要少量的計算,所有控件大小,位置提前計算好,存起來,不要每次去計算,少的使用約束,因為約束是系統會去計算.

緩存行高,因為:利用自動布局計算行高很消耗cpu,每次滾動到該cell都要計算,"self.contentView.layoutIfNeeded",cell將要顯示出來的時候,行高先確定,緩存起來self.contentView.layoutifNeeded這個方法就是布局contview里的控件大小,(定義一個屬性來記對應cell的行高),注意:要移除contentView的底部約束

利用cpu異步繪制cell的layer ? ?"layer.drawsAsynchronously"

柵格化,將cell內容渲染成一張圖片,在滾動的時候就是一張圖片layer.shouldRasterize,layer.rasterizationScale

因為如果上層控件半透明的話,系統會努力的繪制下層控件的內容與上層控件的內容,并且將兩個內容按照透明度去進行繪制

在cell中不要用layer去畫圓角,服務器返回圖片就是圓角的,CALayer的cornerRadius是一個超級費性能的東西,它會在每一幀都裁剪圓角,比如在tableview每個cell里都有一個裁剪屬性,無論你有沒有滾動視圖都會運算裁剪圓角,很費CPU性能!

cell的按需加載 具體參考:?http://www.lxweimin.com/p/5ca924b89e8b

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容