swift - UITableView 单元格延迟扩展
问题描述
我正在制作一个待办事项列表应用程序,并有 3 种自定义单元格类型。对于任务单元格,它只是左侧的图像视图和右侧的文本视图。当 textview 文本对于单行来说太大时,我希望单元格自动调整大小。
我添加了正确的约束并将其添加到 viewWillAppear
tableView.estimatedRowHeight = 30
tableView.rowHeight = UITableView.automaticDimension
但是,当使用 tableview 进入视图时,单元格会保持较小的一秒钟,然后会扩大到正确的大小。此外,当最初添加任务时,单元格不会调整大小,除非返回并再次打开视图控制器或向上滚动表格视图直到单元格不在视图中然后放开。
这是非常奇怪的行为,甚至在从 viewWillAppear 中删除上面的两行时也会发生。它只是无缘无故地发生。
我希望单元格在进入视图时具有正确的大小,而不是在一秒钟后调整大小。
下面是一个例子
解决方案
好的,所以我终于找到了答案。我使用自动布局以编程方式制作了我的单元格,其中一些是在单元格内的 layoutSubviews() 方法中设置的。此方法仅在需要时调用。所以当向上或向下滚动时。
要解决此问题,在您的 cellForRowAt 方法中,只需调用
cell.layoutSubviews()
推荐阅读
- python - 将图像从 mnist 加载到 numpy 数组中
- python - 无效的语法代码
- regex - 正则表达式否定向前看两个连续的空格字符
- javascript - Chrome 媒体控制 - 下载按钮
- android - 像 androidtv livetv 应用程序一样的 EPG 布局
- python - 在 opencv3 上进行视差映射的 cv2.StereoSGBM_create() 和 cv2.StereoBM_create() 函数有什么区别?
- php - 如何修复 UnexpectedValueException 引发的消息“无效的路由操作:...在 Laravel
- mysql - 如何在时间戳中获得最小值最大值
- botframework - 如何删除 Prompt.Choice 中的 tooManyAttempts 消息?如何接受 Prompt.Choice 中不在选项列表中的文本?C#
- node.js - MDN express 教程中使用的 express-validator