【问题标题】:UITableView Visible Cells Not Laying Out Subviews When View AppearsUITableView 可见单元格在视图出现时不布局子视图
【发布时间】:2013-06-29 08:00:04
【问题描述】:

我有一个UITableView,它有多个部分,自定义UITableViewCell 子类填充表格。在这些UITableViewCell 子类中,我正在实现layoutSubviews 来自定义标签的位置等。

所有单元格的子视图都在调整,除了视图加载时的第一批可见单元格。它们与它们在故事板中的布局方式相同,这不是我想要的。例如:

http://i.stack.imgur.com/L5GJh.png

注意:绿色和橙色边框是查看标签是否正在调整大小的视觉辅助。

滚动时,所有出现的新单元格都有它们的子视图,就像我在layoutSubviews 中编程的那样。至于第一批可见单元格,我可以将它们滚动到屏幕外然后再打开,然后子视图就可以完美地布局。例如:

http://i.stack.imgur.com/jgjch.png

tableView: cellForRowAtIndexPath: 内,我在方法返回单元格之前调用[cell layoutIfNeeded]。如果我将其更改为[cell layoutSubviews],则会发生相反的情况,第一批可见单元格按应有的方式布置,但滚动时加载的所有单元格都没有正确布置。

我试图将[cell layoutIfNeeded] 放在[tableview: willDisplayCell: 中,但没有成功。有关如何解决此问题的任何想法?

提前致谢!

【问题讨论】:

    标签: ios uiview uitableview layoutsubviews


    【解决方案1】:

    如果您在启用自动布局的布局代码中设置框架,您会看到这种行为。这行不通。自动布局系统负责设置框架,并将覆盖您设置的值。

    您应该使用约束指定布局或关闭自动布局。

    【讨论】:

    • 哇。你太棒了。我关闭了自动布局并使用自动调整大小来调整所有内容,它可以工作!我想我现在的问题是使用自动布局有什么好处?非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多