UI视图相关

作者: 59c4116645d0 | 来源:发表于2018-07-09 16:29 被阅读0次

一:UITableview

1重用机制

2数据源同步问题(新闻、咨询类app当中常见)

1)

并发访问数据拷贝(cpu负担重)

2)

串行访问(可能会有延时)

3UI事件传递&相应

   1) UIView和CALayer:(单一职责原则)

    UIView负责提供内容,处理触摸事件并参与响应链

    CALayer只负责显示内容contents。

    2)事件传递

    -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event;//返回响应事件的视图

    -(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event;//判断点击的位置是否在当前视图范围内

hitTest:WithEvent的流程图

视图的响应链机制和流程

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;

如果最终没有处理,则忽略此事件

4图像显示原理

各自的分工 cpu的主要工作内容 GPU/OPENGL渲染管线

5UI卡顿、掉帧的原因以及解决方案

1)原因:

在16.7ms内,cpu和gpu没有准备好下一帧的画面绘制就会造成卡顿

2)滑动优化方案

CPU方案:

    对象创建、调整、销毁

    预排版(布局计算、文本计算)

    预渲染(文本等异步绘制、图片编解码等)

GPU方案:

    纹理渲染*

    视图混合*

6 UI绘制原理&异步绘制

1)UI绘制原理

UIView的绘制流程 系统绘制流程

2)异步绘制

异步绘制流程

7 离屏渲染问题(GPU)

    On-Screen Rendering

    当前屏幕渲染,GPU的渲染操作是在当前用于显示的屏幕缓冲区中进行

    Off-Screen Rendering

    离屏渲染,GPU在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作

何时会触发?

    ·圆角(当和maskToBounds一起使用时)    

    ·图层蒙版

    ·阴影

    ·光栅化

为何要避免离屏渲染?

    ·会增加GPU的工作量,可能导致GPU和CPU的工作时间超过16.7ms造成UI卡顿和掉帧现象。

页面性能优化方案(转载)

https://blog.ibireme.com/2015/11/12/smooth_user_interfaces_for_ios/

相关文章

  • # UI视图相关

    UI视图相关 UITableView 事件传递&视图响应 图像显示原理 卡顿&掉帧 绘制原理&异步绘制 离屏渲染 ...

  • UI视图相关

    1.事件传递及相应 (1)UIView及CALayer UIView为其提供内容,以及负责触摸等事件,参与视图事件...

  • UI视图相关

    一:UITableview 1重用机制 2数据源同步问题(新闻、咨询类app当中常见) 1) 2) 3UI事件传递...

  • UI视图相关

    UI视图相关 UITableView 相关重用机制数据源同步(新闻类app, 数据删除)并发访问串行访问 时间传递...

  • UI视图相关

    1.viewDidLoad和viewDidAppear区别 当界面第一次从xib或storyboard加载界面,或...

  • 多线程相关

    引文: 多线程相关 OC 语言相关 内存管理相关 UI视图相关 RunLoop相关 GCD NSOperation...

  • 网络相关

    引文: 多线程相关 OC 语言相关 内存管理相关 UI视图相关 RunLoop相关 HTTP协议 HTTPS与网络...

  • UI视图相关问题

    UI视图相关点 一.UITableView的重用机制 二.数据源同步问题(增删改查) 1.并发访问、数据拷贝(删除...

  • OC 语言相关

    引文: 多线程相关 OC 语言相关 内存管理相关 UI视图相关 RunLoop相关 分类 关联对象 扩展 代理 通...

  • 常见面试问题概括

    UI视图相关 *TableView重用机制? 答: *视图绘制原理?如何实现异步绘制? 答:UIView绘制原理 ...

网友评论

    本文标题:UI视图相关

    本文链接:https://www.haomeiwen.com/subject/fpbzuftx.html