Swift 自动布局:视图中出现不正确的帧大小
我有一个UIViewController,我通过IB使用Autolayout来定位和调整其子视图的大小 由于某些原因,我没有得到正确的UIView布局,我决定在VC中记录所有子视图的大小 我将子视图大小记录在:Swift 自动布局:视图中出现不正确的帧大小,swift,ios8,xcode6,autolayout,ios-autolayout,Swift,Ios8,Xcode6,Autolayout,Ios Autolayout,我有一个UIViewController,我通过IB使用Autolayout来定位和调整其子视图的大小 由于某些原因,我没有得到正确的UIView布局,我决定在VC中记录所有子视图的大小 我将子视图大小记录在: viewDidLoad{ self.view.layoutIfNeeded() print(uiview.size) } viewDidLayoutSubviews{ print(uiview.size) } viewWillAppear{ print(uiview.s
viewDidLoad{
self.view.layoutIfNeeded()
print(uiview.size)
}
viewDidLayoutSubviews{
print(uiview.size)
}
viewWillAppear{
print(uiview.size)
}
viewDidAppear{
print(uiview.size)
}
子视图的大小在以下方面是正确的:
自动布局直到在viewDidLayoutSubviews最终调用之后才完成,就在ViewDid出现之前。我解决了自己的问题 我约束视图与VC的高度成比例 我显示的VC有一个导航栏。所有视图大小都是正确的(即使在viewDidLoad中,因为我调用LayoutIfNeed()),直到VC开始绘制导航栏并缩小Superview的高度;因此,缩小其子视图的高度
我所要做的就是通过勾选VC的属性检查器中的相应框来扩展顶部栏下的边。这样VC就不会缩小我的子视图的超级视图。我解决了自己的问题 我约束视图与VC的高度成比例 我显示的VC有一个导航栏。所有视图大小都是正确的(即使在viewDidLoad中,因为我调用LayoutIfNeed()),直到VC开始绘制导航栏并缩小Superview的高度;因此,缩小其子视图的高度
我所要做的就是通过勾选VC的属性检查器中的相应框来扩展顶部栏下的边。这样VC就不会收缩我的子视图的superview。如果是这样,那么自动布局如何达到正确的帧大小,直到它达到ViewDidDisplay。此外,我100%确信我的约束是正确的。最终的viewDidLayoutSubviews和ViewDidDisplay是查看AutoLayout完成的帧的唯一正确位置。视图将出现太早。检查控制台,确保没有违反任何约束。以下是关于viewDidLoad/ViewWillDisplay/ViewDidDisplay@Btitus的先前答案供您参考,如何知道它是否是ViewDidDisplay之前的最终viewDidLayoutSubviews?如果是这种情况,则自动布局如何达到正确的帧大小,直到达到ViewDidDisplay。此外,我100%确信我的约束是正确的。最终的viewDidLayoutSubviews和ViewDidDisplay是查看AutoLayout完成的帧的唯一正确位置。视图将出现太早。检查控制台并确保没有违反任何约束。以下是关于viewDidLoad/ViewWillDisplay/ViewDidDisplay@Btitus的先前答案供您参考,我如何知道它是否是ViewDidDisplay之前的最终viewDidLayoutSubviews?