我在UIViewController中布置了一个UIView。约束它的高度和宽度,并使用约束垂直和水平居中,但是当我记录它的框架时,它报告一个看起来适合于完整sizeClass的位置,但不是我正在看的屏幕的大小。< / p>
例如,默认大小类UIViewController的宽度为600px,在该大小中,我的UIView距离左边缘150px。当我在iphone5模拟器中运行时从左边缘检查这个距离时,它仍然报告150px。
关于所有这一切的奇怪之处在于,UIView本身仍然出现在预期的(调整屏幕大小)位置。
答案 0 :(得分:0)
对于后代:我遇到的问题 - 在打印视图框架时获取的值不正确 - 是在ViewDidLoad
期间访问该框架导致的。此时ViewController生命周期可能尚未布置所有视图。
因此,只有在调用UIView
后访问ViewDidLayoutSubviews
属性/出口才是最安全的。
我的意思是,它就是以方法的名义出现的:“你的观点已经布局了......现在用它们做点什么。”