UI主要技术

UITableView重用机制

  1. 数据源同步问题
    例如: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在当前屏幕缓冲区外新开辟的一块区域渲染叫做离屏渲染

你可能感兴趣的:(UI主要技术)