Xcode 8 Storyboard 帧大小问题

Posted

技术标签:

【中文标题】Xcode 8 Storyboard 帧大小问题【英文标题】:Xcode 8 Storyboard frame sizes issue 【发布时间】:2016-11-08 07:34:07 【问题描述】:

我使用 NavigationController 将 UIView 放到 ViewController 的视图中。

并将新 UIView 的约束设置为 Top Space to TopLayoutGuide:0,Leading space to superview:0 Trailing space to superview:0 and Bottom Space to Bottom LayoutGuide:0。

因此,在 IB 中,新的 UIView 看起来不错,我的意思是它的顶部就在导航栏下方并填充了其余部分。

但是,在 Objective-C 中,我为 self.view.frame.size 和新 UIView 的 frame.size 输出 NSLog。我预计新 UIView 的高度小于 self.view 的高度,因为新 UIView 的顶部位于导航栏下方,而 self.view 覆盖了所有区域。

但结果是他们两个的高度相同。这使得new UIView上的内容错位了。

你有什么好的解决办法吗?

谢谢。

【问题讨论】:

你在哪里打印它们? 在调用 viewDidLayoutSubviews 之前,帧的大小不会正确,此时您的所有约束都已解决。 感谢您的好建议。我会尝试重写代码。 @norders 非常感谢。它工作得很好。非常感谢您的帮助。 @Tj3n 我在 webView 委托 didLoad 上打印它。 【参考方案1】:

在 viewDidLauoutSubviews 上写代码解决了这个问题。

【讨论】:

以上是关于Xcode 8 Storyboard 帧大小问题的主要内容,如果未能解决你的问题,请参考以下文章

iOS 8 Xcode 6:灰色约束的意义何在?

使用 Xcode 8 的 Interface Builder 中的 Auto Layout 和 Trait Variations 正确设计的 Storyboard 视图在 Simulator 和 De

Xcode Storyboard 图像大小

Xcode修改storyboard大小

如何使用 Xcode Storyboard 为不同的设备设置不同的字体大小?

如何使约束适用于横向和纵向(xcode 8.1 / swift3 / storyboard)