【问题标题】:Incorrect frame of UIScrollview in viewDidLayoutSubviewsviewDidLayoutSubviews 中 UIScrollview 的帧不正确
【发布时间】:2016-11-18 04:20:18
【问题描述】:

我正在使用 Xcode7.3.1。我的 ViewController 包含类似的结构 UIScrollview->UIView->UIScrollview。我正在为这些视图使用自动布局。我试图在viewDidLayoutSubviews 中打印我的内部滚动视图框架,但我没有得到确切的框架。在 viewController 的 xib 部分中,autoLayout 没有显示任何错误。 请帮我解决这个问题?

【问题讨论】:

  • 实际上viewDidLayoutSubviews 调用了不止一次...所以您可能在第一次调用时检查了框架.. 如果您将代码从那里转移到viewDidAppear 会更好,这里它会被单次调用,并且帧会和你预期的一样
  • 它不工作
  • 那一定是你的自动布局约束有问题。

标签: ios swift xcode uiscrollview autolayout


【解决方案1】:

我意识到这是一个相当老的问题,但我刚刚遇到了这个问题并找到了一个(hacky)解决方案。这似乎是 SDK 中的一个错误。发生的情况是滚动视图的内容没有像您期望的那样在viewDidLayoutSubviews 之前布置。所以我的解决方案是强制它。

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    scrollView.setNeedsLayout()
    scrollView.layoutIfNeeded()
    // now scroll view content should laid out as expected
}

【讨论】:

    猜你喜欢
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 2012-07-05
    • 2011-03-13
    • 2017-04-27
    • 2019-01-11
    相关资源
    最近更新 更多