知识点总结

iOS 界面卡顿优化

2019-04-08  本文已影响3人  飞不越疯人院

了解界面卡顿原因后, 一些相关知识点;


知识点:日常开发中针对UITableView卡顿的优化方案有哪些?

CPU部分 GPU部分
1.对象的创建, 调整和销毁放到子线程中去处理; 1.采用异步绘制;
2. 预排版(布局计算.文本计算)放到子线程中去处理; (例:动态计算高度cell的地方拿到数据后在子线程将高度计算好后记录, 然后在主线程中直接使用) 2.纹理渲染(尽量规避离屏渲染);
3. 预渲染(文本等的异步绘制,图片的编码解码等); 3.视图混合(一定程度上减轻视图层级的复杂性);

文本渲染:屏幕上能看到的所有文本内容控件,包括 UIWebView,在底层都是通过 CoreText 排版、绘制为 Bitmap(位图) 显示的。常见的文本控件 (UILabel、UITextView 等),其排版和绘制都是在主线程进行的,当显示大量文本时,CPU 的压力会非常大。对此解决方案只有一个,那就是自定义文本控件,用 TextKit 或最底层的 CoreText 对文本异步绘制。尽管这实现起来非常麻烦,但其带来的优势也非常大,CoreText 对象创建好后,能直接获取文本的宽高等信息,避免了多次计算(调整 UILabel 大小时算一遍、UILabel 绘制时内部再算一遍);CoreText 对象占用内存较少,可以缓存下来以备稍后多次渲染。


上一篇下一篇

猜你喜欢

热点阅读