iOS - UIView subview 的大小与 super View 不同

标签 ios xcode uiview constraints

我正在创建一个 UIViewController,其 subview 的宽度与 super View 相同,高度是 super View 的一半。

这是它在 Storyboard 中的样子:

Views

这些是我为 View Punkte 添加的约束:

Constraints

另外,我添加了“等高”约束。

约束正常工作。当我旋转设备时, 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/

相关文章:

ios - 识别触摸移动方向

iphone - iOS 的动画 GIF 替代品

ios - 快速相机覆盖 View

iphone - Xcode 错误-线程 1 : signal SIGABRT

ios - UIView 及其 subview 上的 UITapGestureRecognizer 在 subview 被点击时一起响应

ios - CFSocket 在成功连接时崩溃

ios - ios应用需要什么样的模板

ios - Swift , 共享扩展 : NSItemProvider loadItem not working

ios - 自定义 View 中的 Crasher 作为 UINavigationControllers navigationItem.titleView

ios - Table tap 和 didselect 方法冲突