首页 > 解决方案 > UITableView 单元格延迟扩展

问题描述

我正在制作一个待办事项列表应用程序,并有 3 种自定义单元格类型。对于任务单元格,它只是左侧的图像视图和右侧的文本视图。当 textview 文本对于单行来说太大时,我希望单元格自动调整大小。

我添加了正确的约束并将其添加到 viewWillAppear

tableView.estimatedRowHeight = 30
tableView.rowHeight = UITableView.automaticDimension

但是,当使用 tableview 进入视图时,单元格会保持较小的一秒钟,然后会扩大到正确的大小。此外,当最初添加任务时,单元格不会调整大小,除非返回并再次打开视图控制器或向上滚动表格视图直到单元格不在视图中然后放开。

这是非常奇怪的行为,甚至在从 viewWillAppear 中删除上面的两行时也会发生。它只是无缘无故地发生。

我希望单元格在进入视图时具有正确的大小,而不是在一秒钟后调整大小。

下面是一个例子

例子

标签: swiftxcodeuitableview

解决方案


好的,所以我终于找到了答案。我使用自动布局以编程方式制作了我的单元格,其中一些是在单元格内的 layoutSubviews() 方法中设置的。此方法仅在需要时调用。所以当向上或向下滚动时。

要解决此问题,在您的 cellForRowAt 方法中,只需调用

cell.layoutSubviews()

推荐阅读