tableView优化思路
Posted Sky109
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tableView优化思路相关的知识,希望对你有一定的参考价值。
一般优化的思路:
-
提前计算并缓存好高度(布局),因为heightForRowAtIndexPath:是调用最频繁的方法。
-
复杂界面可采用异步绘制。
-
在大量图片展示时,可以滑动时按需加载。
-
尽量少用或不用透明图层,多个透明元素重叠显示可采用合并成一张图片显示。
-
减少subviews的数量,如果是不需要交互可以使用CALayer 替换掉 UIView。
-
在
heightForRowAtIndexPath:
中尽量不使用cellForRowAtIndexPath:
。 -
根据场景合理使用imageWithContentsOfFile和imageNamed。
-
页面元素多的时候,减少autolayout布局,采用frame。
-
缓存NSDateFormatter结果,不多次创建,及时释放。
-
图片解码时,CALayer 被提交到 GPU 前,CGImage 中的数据才会得到解码,GPU执行,卡主线程。常见的做法是在后台线程先把图片绘制到 CGBitmapContext 中,然后从 Bitmap 直接创建图片。
-
CALayer 的 border、圆角、阴影、遮罩(mask)触发的离屏渲染,可开启CALayer.shouldRasterize ,转嫁到CPU上或是截图或者采用图片实现。
-
使用RunLoop和多线程在闲时处理一些繁重的计算工作。
以上是关于tableView优化思路的主要内容,如果未能解决你的问题,请参考以下文章
优化 C# 代码片段、ObservableCollection 和 AddRange
iOS tableView图片未知宽高加载优化 之 runloop
片段(Java) | 机试题+算法思路+考点+代码解析 2023