我正在创建一个 UIViewController
,其 subview 的宽度与 super View 相同,高度是 super View 的一半。
这是它在 Storyboard 中的样子:
这些是我为 View Punkte
添加的约束:
另外,我添加了“等高”约束。
约束正常工作。当我旋转设备时, subview 保持不变。 但问题是帧大小。
当我打印两个 View 的大小时,这就是 Xcode 返回的内容(代码在 ViewDidLoad
中:
print(self.view.bounds) // returns --> (0.0, 0.0, 375.0, 667.0)
print(viewPunkte.bounds) // returns --> (0.0, 0.0, 600.0, 300.0)
为什么会这样? viewPunkte
的宽度不正确!
这个问题的解决方案是什么?
谢谢。
最佳答案
如果您在 viewDidLoad
期间检查 View 的框架,那么您可能在 View 初始化之后但在它们完成布局过程之前这样做。您的 Controller View 尚未添加到窗口中,您不应假设任何 View 的框架都反射(reflect)了它们的最终大小。
考虑为什么您认为此时需要检查 View 框架。
关于iOS - UIView subview 的大小与 super View 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35943701/