当前位置: 首页 > 知识库问答 >
问题:

UITableView单元格延迟扩展

焦光霁
2023-03-14

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

我已经添加了正确的约束,并将其添加到viewWillAppear中

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

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

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

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

下面是这样一个示例

共有1个答案

樊博雅
2023-03-14

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

要解决此问题,请在单元格中调用

cell.layoutSubviews()
 类似资料:
  • 问题内容: 我正在尝试使用行高和单元格的自动布局来制作可扩展单元格。为了使事情变得简单,我从下面的简单代码开始,我希望它们能正常工作: 现在这似乎可行,但是,我仍然收到以下消息警告: 估计(或当前)行高似乎与我提供的自动布局约束相冲突。尽管如此,使用以下代码刷新tableView仍将按预期显示它: 如何删除警告? 我知道将高度限制的优先级简单地更改为999即可删除警告,但在我看来,删除警告是一种h

  • 问题内容: 如何在Swift中的tableView单元中以编程方式嵌入?我就是那样做 问题答案: 这是您可以在单元格上嵌入的方法。 这是切换调用贝克方法 @LeoDabus 。 注意:如果您可能有多个,则应创建一个CustomCell子类并配置您的内部 方法而不是表视图方法。当将可重用的队列释放出队列时,将其投射到您的CustomCell中这是@LeoDabus的示例

  • 我目前正在尝试将放置在不同的位置,而不是视图控制器的顶部。说到这里,它试图在顶部添加标题来说明导航栏,但这不是必需的,因为我的控制器顶部没有标题。 如果我把的左上角放在我想要的单元格位置,它不会把单元格放在那里: 现在,如果我只是向上移动表格视图,使单元格位于正确的位置,我会遇到另一个问题-滚动时单元格可以向上移动(这是用我的手指在导航控制器上方): 当我放手的时候,是的-单元格将在搜索栏的正下方

  • 可变长度的文本数据正在注入到表视图单元格标签中。为了正确调整每个单元格高度的大小,我在中实现了: 这估计高度为88.0像素,如果更大,应该会自动调整高度大小。它非常适用于尚未滚动到的单元格(因为在滚动到单元格时被调用),但不适用于最初在加载数据时在屏幕上呈现的单元格。 我尝试过重新加载数据(正如许多其他资源中建议的那样): 在这两个和,它没有帮助。我迷路了…有人知道如何渲染最初在屏幕上加载的单元格

  • 我正在用Xcode 10做。我在视图控制器中有一个表视图。 单元格的标签设置为前导、跟踪、顶部和底部,行为0 在ViewDidload()中,我添加了 但是当我点击Viewcontroller时,tableview没有加载正确的高度单元格(需要自动调整大小的单元格没有加载,不需要的单元格被调整大小) 然后我加上这段代码 代码只对最初的几个单元格运行良好,但是当我向下滚动更多的时候(我有大约超过10

  • 问题内容: 我正在尝试使用新的React Lazy和Suspense创建后备加载组件。这很好用,但后备时间仅显示几毫秒。有没有办法增加额外的延迟或最短时间,因此我可以在渲染下一个组件之前显示该组件的动画? 现在懒导入 等待组件: 我可以做这样的事情吗? 问题答案: 函数应该返回对象的承诺,该对象由具有默认导出功能的模块返回。不会返回承诺,也不能那样使用。尽管任意承诺可以: 如果目标是提供 最小的