作者:樂烙清欢1982 | 来源:互联网 | 2023-05-24 07:04
我有一个UIViewController,我正在通过IB使用Autolayout来定位和调整其子视图.
出于某种原因,我没有得到正确的UIView布局,我决定在VC中记录所有子视图大小.
我记录了子视图大小:
viewDidLoad{
self.view.layoutIfNeeded()
print(uiview.size)
}
viewDidLayoutSubviews{
print(uiview.size)
}
viewWillAppear{
print(uiview.size)
}
viewDidAppear{
print(uiview.size)
}
子视图大小是正确的:
viewDidLoad中
viewDidLayoutSubviews
viewWillAppear中
viewDidLayoutSubviews
但它变得不正确:
viewDidLayoutSubviews
viewDidAppear
如何使用ViewWillAppear中正确的子视图大小?为什么在最终的viewDidLayoutSubviews调用和viewDidAppear中我的尺寸不正确?
1> bjtitus..:
您的"正确尺寸"来自AutoLayout完成其工作之前.框架将是Interface Builder文档中的框架.您需要修复约束以实现您期望的任何帧.
直到最后一次viewDidLayoutSubviews在viewDidAppear之前调用之后,AutoLayout才完成.