我有一个 UITableView,它通过适当的机制(使用 FetchedResultsController 等)从 CoreData 读取信息。此信息可以是文本信息,也可以是要加载到 tableview 中的本地图像的 URL。
数据需要以自下而上的方式填充到表中(类似于消息传递应用程序)。我的目标是 iOS 8+,但如果我使用estimatedHeightForRowAtIndexPath,我会在 3+ 多行标签和图像上得到可怕的抖动。除非它是单行 UILabel,否则估计似乎太远了。我的预感是细胞高度是以自上而下的方式估计的,因此细胞高度从细胞顶部到细胞底部增长。这意味着从上到下滚动很好,但从下到上不是,因为当我向上滚动时,单元格正在“向下”动态调整大小。
我目前正在使用 heightForRowAtIndexPath 来计算单元格高度。这样做的问题是,最初加载视图需要很长时间,因为单元格高度都是一次计算的。我正在使用单元格高度缓存来存储单元格高度,以便在加载视图后,滚动非常流畅。
所以我的问题是:如何使用 heightForRowAtIndexPath 而不需要 3-5 秒的初始加载?
并跟进奖金问题,当您的单元格高度差异很大时,有什么方法可以可靠地使用estimatedHeightForRowAtIndexPath?我们说的是从 44px 到 300px 的任何地方。从我读到的内容来看,在这种情况下我根本无法使用estimatedHeight 计算。
我已经用尽了关于estimateHeight/heightForRowAtIndexPath 的所有stackoverflow 帖子,现在我开始不止一次地查看相同的帖子。所以我被困住了。