【问题标题】:Why UITableView's contentLayoutGuide.layoutFrame always zero?为什么 UITableView 的 contentLayoutGuide.layoutFrame 总是为零?
【发布时间】:2018-04-07 18:34:25
【问题描述】:

从 iOS 11 开始,Apple 为UIScrollView 添加了一个contentLayoutGuide,我想用表格视图的contentLayoutGuide 添加自动布局约束,但我发现contentLayoutGuidelayoutFrame 始终为 CGRect.zero ,所以它不起作用。

我想用自动布局在滚动视图内容的底部添加一个视图。这不起作用:

label.topAnchor.constraint(equalTo: tableView.contentLayoutGuide.bottomAnchor, constant: 10).isActive = true

【问题讨论】:

    标签: ios uitableview uiscrollview autolayout ios11


    【解决方案1】:

    我想我知道为什么UITableView 的这个值总是为零,可能是因为表格视图的子视图不是由自动布局约束布局的,它们是按框架布局的。

    所以只有通过自动布局约束布局的子视图才能给contentLayoutGuide.layoutFrame 一个值。

    【讨论】:

      【解决方案2】:

      什么时候添加这个约束?

      根据Apple documentation

      在调用其所属视图的 layoutSubviews() 方法时,此属性包含一个有效的 CGRect 值。

      希望对你有帮助。

      【讨论】:

      • 但是在拥有视图的 layoutSubviews() 方法被调用后它仍然返回零。 frameLayoutGuide 和 safeAreaLayoutGuide 的值是正确的,但 contentLayoutGuide 总是为零
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多