UI主要技术
2019-05-29 本文已影响0人
灬小0哥
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在当前屏幕缓冲区外新开辟的一块区域渲染叫做离屏渲染