【发布时间】:2017-10-13 07:09:19
【问题描述】:
我有一个问题,UIViewController(来自 XIB)中的 topLayoutGuide.length 在 viewWillAppear 之后设置,我不知道如何挂钩 topLayoutGuide.length 的更改以最初设置 a 的 contentOffset表格视图。
在UINavigationController 内模态显示UIViewController 的代码:
let viewController = UIViewController(nibName: "ViewController", bundle: nil)
let navigationController = UINavigationController(rootViewController: viewController)
present(navigationController, animated: true, completion: nil)
我关于topLayoutGuide.length的调试输出
Init view controller
-[UIViewController topLayoutGuide]: guide not available before the view controller's view is loaded
willMove toParentViewController - top layout guide nan
Init navigation controller and pass view controller as root vc
Present navigation controller modally
viewDidLoad - top layout guide 0.0
viewWillAppear - top layout guide 0.0
viewWillLayoutSubviews - top layout guide 64.0
viewDidLayoutSubviews - top layout guide 64.0
viewWillLayoutSubviews - top layout guide 64.0
viewDidLayoutSubviews - top layout guide 64.0
viewDidAppear - top layout guide 64.0
didMove toParentViewController - top layout guide 64.0
viewWillLayoutSubviews - top layout guide 64.0
viewDidLayoutSubviews - top layout guide 64.0
现在我在视图控制器中使用 bool 标志在 viewDidLayoutSubviews 中设置 contentoffset 一次,即使该方法被多次调用。
有什么更优雅的解决方案吗?
【问题讨论】:
-
您是否尝试过在
viewDidLoad中设置布局锚点/布局约束。您可以粘贴代码显示您如何设置布局约束/锚点吗? -
在我看来,只要您使用自动布局,值并不重要
标签: ios swift uiviewcontroller autolayout