1

我正在做一个这样的表格视图:推特和评论; 在此处输入图像描述

我尝试了几种架构。我没有找到足够的问题和讨论。我认为这是一个非常有意义的问题,所以我发布了这些架构的性能和局限性。

首先,使用带有评论的整个单元格作为推特,评论视图将根据模型生成。单元格使用自调整大小自动布局高度。
这种架构可以工作。但是如果一个 twitter 有很多评论(30 或更多),在旧 iPhone(4s、5、5s 等)中,fps 将下降到 40。滚动平滑的明显块。这个性能瓶颈是这种架构的唯一弱点。

其次,由于性能瓶颈,我想也许我可以在推特单元格中放置一个评论表格视图。推特单元格和嵌入式评论单元格也使用自调整大小自动布局高度。但经过尝试,我发现推特单元格不能确认它的高度,因为嵌入式评论表视图本身不能确认它的高度。所以我需要计算嵌入式评论表视图的高度来确认推特单元格的高度。这个架构也很好用,但是它的性能瓶颈和第一个架构一样。

第三,也是最重要的,使用section header作为twitter,cell作为comment。也就是说,一个section是一个带有评论的整个twitter。section header和cell都使用self-sizing auto-layout height。
这个架构的性能是最好的,即使是评论多达50+的推特,即使在iPhone5中tableview滚动也非常流畅,fps至少是55。但是有一些奇怪的问题我无法解决。
我滚动到底部,tableview将重新加载下一页。reloadData后,第一个小问题是节标题消失,但滚动后出现(后来我发现如果我设置tableview标题,就会出现这个问题,如果我删除tableview标题,这个问题消失了,很困惑)。第二个更重要的问题是,如果我向上滚动,tableview 会“跳”。下面是 gif 演示。(我不知道如何将大 gif 发布到 StackOverflow,对不起) https: //github.com/yutanchi/GroupTableViewSectionHeaderJump/blob/master/tableviewjump.gif
我认为原因是 tableview 使用估计的节标题高度而不是实际的节标题高度。我搜索了很多信息,但没有任何帮助不是。因为这种架构具有明显的性能优势,所以我想确定 self-sizing section header 有什么问题,解决这些烦人的问题并使用该架构。有人可以解释或讨论一下吗?

4

1 回答 1

0

为此,您必须为所有元素提供所有约束左上角底部。1-in viewDidLoad 设置如下

self.yourtableView.estimatedRowHeight= your estimated_height_for_Cell
yourtableView.rowHeight = UITableViewAutomaticDimension

2 将行数设置为零对于属性检查器中的标签。

于 2017-09-28T09:28:27.553 回答