已设置约束但视图未正确放置
Posted
技术标签:
【中文标题】已设置约束但视图未正确放置【英文标题】:Constraints set but views not placed correctly 【发布时间】:2015-05-08 15:53:21 【问题描述】:我遇到了约束问题。我在我的 UI 元素上设置了约束,您可以在下面看到。对于每一个,我为一些设置了 x、y 和高度/宽度。当我单击“更新框架”时,一切正常,视图放置在正确的位置。但是在预览(屏幕截图的右侧窗口)和模拟器中,视图没有正确放置,屏幕上没有任何内容。当我在模拟器上启动应用程序时,调试控制台中没有警告说存在约束冲突。在 Xcode 中也一样,没有警告也没有错误。
这是我的视图控制器和设置的约束。您可以在右侧看到多个设备的预览。
【问题讨论】:
【参考方案1】:看起来您已将项目添加到 w:Regular 和 h:Regular 尺寸类。除了那个之外,UI 元素不在任何其他大小类中。您看不到 UI 元素,因为 iPhone 的尺寸类别是 w:Compact h:Regular。
您需要将 UI 元素添加到所有尺寸类别,而不仅仅是 w:regular 和 h:regular。
如果您仍有问题,我推荐斯坦福课程的 AutoLayout 讲座,我知道它帮了我很多忙。
【讨论】:
确实,我不明白为什么它只与这个控制器搞砸了。非常感谢!【参考方案2】:您需要设计所有尺寸类别的视图控制器。您在 w:regular 和 h:regular 中设计视图控制器,这不适用于 iphone,因此当您运行应用程序时,视图不会显示
Apple 在 ios 8 中引入了自适应布局,因此请参阅 Size Classes 以获取更多信息
【讨论】:
以上是关于已设置约束但视图未正确放置的主要内容,如果未能解决你的问题,请参考以下文章
Snapkit centerY 约束将项目居中于中心 Y 轴上方