【发布时间】:2016-05-17 23:36:40
【问题描述】:
我已经用自定义视图控制器实例化了UINavigationController。它的视图包含一个按钮,当点击该按钮时,导航控制器会将不同自定义视图控制器的视图推送到视图中:
@IBAction func showVC(sender: AnyObject) {
let vc = MyOtherViewController()
navigationController?.pushViewController(vc, animated: true)
}
在MyOtherViewController's viewWillAppear() 函数中,我看到视图没有调整大小以适应视图层次结构。
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
print("view: \(view)")
}
print() 函数的输出是:
视图:
如您所见,此时视图的大小仍为600 x 600,即来自.xib 文件的原始大小。我没有调整 .xib 中视图的大小,因为该视图将显示在各种 iPhone 和 iPad 显示器上。
我的困境是我需要视图的最终尺寸,因为我需要根据视图的宽度构造一些NSLayoutConstraints。
调整视图大小的推荐方法是什么?期望视图在调用 -viewWillAppear() 时调整大小是错误的吗?
【问题讨论】:
-
您可以覆盖
viewWillLayoutSubviews以获得视图的实际大小。
标签: ios swift uiview uiviewcontroller