ios – 滚动时UITableViewCell autolayout jerk的动态单元格高度问题

前端之家收集整理的这篇文章主要介绍了ios – 滚动时UITableViewCell autolayout jerk的动态单元格高度问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_4@
我正在尝试做一些事情,例如在uitableview中加载具有自定义高度的不同类型的单元格. tableview单元格是子类,由具有相应约束的标签组成.每个单元具有动态高度.

现在甚至在我的表重新加载数据之前,我正在计算调整单元格大小所需的高度并将其缓存在我的模型类中,这样我就不必计算在设备上渲染数据时的高度.

为了计算高度,我确实使用了Ray Wenderlich的教程,并且我有正确的高度适用于对象.

Now the problem comes. Whenever I am dequeueing the cells there is a
kind of a small jerk that gives me an indication that my cell is
dequeued while scrolling.

如何使这些运动平滑,以便在滚动视图时没有混蛋?

高度将被分配,并根据当前加载的数据类型获取值.

estimatedRowForIndexPath

我也从我的cellForAtindexPath调用layoutIfNeeded

建议是最受欢迎的.

@H_404_4@

解决方法

如果没有在cellForRowAtIndexPath中看到您的代码,并且没有看到您的单元格及其各自的代码,那么很难说.以下是我要调查的一些常见问题:

单元格的内容是什么,单元格中的视图层次结构有多复杂?

即使您提供正确的估计高度,仍然需要进行自动布局传递,并且复杂的视图层次结构将需要时间来解决

单元格是否包含图像?

需要从文件解压缩的图像(UIImage imageNamed :)可能是密集的并导致滚动问题,检查图像并不比它们需要的大.如果需要,将此工作添加后台线程.

您是否正在调用复杂方法来配置要在cellForRowAtIndexPath中显示的单元格?

看看在cellForRowAtIndexPath中实际完成的工作,是否有一个复杂的方法在您的单元子类或视图模型中被触发?

您是否在cellForRowAtIndexPath中向单元视图层次结构添加删除视图?

如果在单元格配置期间添加,删除,创建,从xib充气,约束等视图,这可能会减慢速度.尽量只做必要的事情.在cellForRowAtIndexPath期间检查是否有任何代码在cellForRowAtIndexPath内部运行,可以移动到单元格initWith …或awakeFromNib方法(即在创建单元格时可以运行一次的代码,而不是每次显示单元格时)

同时运行Instruments时间分析器,看看是否提供了更多线索

@H_404_4@ @H_404_4@

猜你在找的iOS相关文章