我在应用程序中有一个要求,几乎每个uitableviewcell都有不同的高度。此外,许多单元格都有图像(1,2或3)和文本。
之前我使用的是 heightForRowAtIndexpath ,但是像往常一样,表现非常可怜,生涩的感觉,
我确实关注了这个问题,
与之前的方法相比,性能要好得多, 但是, estimatedHeightForRowAtIndexPath 随后被调用了很多次,因为列表不稳定。
如果加载了单元格编号 N , estimatedHeightForRowAtIndexPath 将被称为 N-1 次,如果我们进一步列表,就会发生这种情况如果我们向后退,它就知道估计的高度。
请帮助我理解为什么会发生这种情况,我该怎么做才能提高性能并使滚动无抖动。
答案 0 :(得分:1)
为了使表格顺利,我使用这个策略..
cellHeights
heightforRowAtIndexPath
中,我返回cellHeights[indexPath.row]
结果转换一直非常流畅:)
答案 1 :(得分:0)
而不是指责框架“经常”发送消息,你应该责怪自己的代码,因为它的响应速度不够快。你说:
早些时候我使用的是heightForRowAtIndexpath但是像往常一样,表现非常可怜,生涩的感觉
但你的“像往常一样”是错误的。如果您无法立即从@SuppressWarnings
返回结果,则此方法的实现是错误的。你应该“记住”你的身高计算,这样,一旦计算了一行的高度,你就知道它的身高。