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