0

我有一个 UITableView,它通过适当的机制(使用 FetchedResultsController 等)从 CoreData 读取信息。此信息可以是文本信息,也可以是要加载到 tableview 中的本地图像的 URL。

数据需要以自下而上的方式填充到表中(类似于消息传递应用程序)。我的目标是 iOS 8+,但如果我使用estimatedHeightForRowAtIndexPath,我会在 3+ 多行标签和图像上得到可怕的抖动。除非它是单行 UILabel,否则估计似乎太远了。我的预感是细胞高度是以自上而下的方式估计的,因此细胞高度从细胞顶部到细胞底部增长。这意味着从上到下滚动很好,但从下到上不是,因为当我向上滚动时,单元格正在“向下”动态调整大小。

我目前正在使用 heightForRowAtIndexPath 来计算单元格高度。这样做的问题是,最初加载视图需要很长时间,因为单元格高度都是一次计算的。我正在使用单元格高度缓存来存储单元格高度,以便在加载视图后,滚动非常流畅。

所以我的问题是:如何使用 heightForRowAtIndexPath 而不需要 3-5 秒的初始加载?

并跟进奖金问题,当您的单元格高度差异很大时,有什么方法可以可靠地使用estimatedHeightForRowAtIndexPath?我们说的是从 44px 到 300px 的任何地方。从我读到的内容来看,在这种情况下我根本无法使用estimatedHeight 计算。

我已经用尽了关于estimateHeight/heightForRowAtIndexPath 的所有stackoverflow 帖子,现在我开始不止一次地查看相同的帖子。所以我被困住了。

4

1 回答 1

0

为什么woncha在表格中填充几行以填充可见区域,并且在viewDidAppear开始在表格顶部填充旧消息一两个时,没有动画,自动或其他。通过这种方式,随着 uitableview 人口的推迟,我认为你会得到一个可以接受的表现。

或者您可以通过 Skype 方式执行此操作,将使用较旧消息的表格人口推迟到表格从顶部边缘反弹之后。

于 2016-04-14T07:31:00.490 回答