UITableView重用機制
- 數據源同步問題
例如:ui顯示數據源請求來的數據,刪除某行后,子線程請求數據又同步到ui上
解決數據源同步問題的
并發訪問數據拷貝
串行訪問
子線程請求數據 主線程刷新數據 刪除操作后
1.UIView和UILayer的區別 (ios單一原則)
-- UIView為其提供內容以及負責處理觸摸事件,參與響應。(事件傳遞和事件響應)
--CALayer負責顯示內容 (圖像渲染)
2.事件傳遞
//點擊某個視圖后將視圖返回
-(UIView)hitTest:(CGPoint *)point withEvent:(UIEvent *)event;
//返回點擊的點是否在視圖內
-(Bool)pointInSide(CGPoint *)point withEvent:(UIEvent *)event;
3.點擊屏幕處理流程
點擊屏幕-->UIApplication-->UIWindow-->HitTest-->PointInSide-->SubView-->UIView
UIView倒敘遍歷內部視圖-->HitTest
HitTest相應前判斷
1.是否可以交互 2. 是否不隱藏 3.透明度 >0.01 4.判斷點擊是否在視圖內部 5.遍歷視圖內部是否內部操作
4.UI卡頓 掉針的原因
在貴定的16.7毫秒中,在下一幀vsync信號到來之前,cpu和Gpu并沒有完成下一幀畫面的合成,于是就出現了卡頓和掉幀
5.滑動優化方案
CPU:對象的創建,調整,銷毀都放在子線程做 布局計算,文本計算都子線程做
GPU: 紋理渲染cpu異步繪制
什么是離屏渲染?
Gpu在當前屏幕緩沖區外新開辟的一塊區域渲染叫做離屏渲染