界面生成器中的自动布局

Posted

技术标签:

【中文标题】界面生成器中的自动布局【英文标题】:Autolayout in interface builder 【发布时间】:2013-11-21 12:42:54 【问题描述】:

添加约束时,如何判断约束从视图的哪一侧开始? (阅读下文以了解我的意思)。

这快把我逼疯了。假设我有一个滚动视图,它的框架应该是 (0, 20, 320, height - 40)。所以很明显,我想将 20 的垂直空间添加到顶部布局指南,并将 20 之一添加到底部布局指南。

但是当我控制从滚动视图拖动到顶部布局指南时,它添加了 -528 垂直间距的约束(滚动视图的底部距离顶部布局指南 -528)。我希望滚动视图的顶部距离顶部布局指南 20,并且约束不要引用滚动视图的底部。

【问题讨论】:

【参考方案1】:

如果您向下轻推滚动视图,使其不与超级视图的顶部对齐,那么当您在顶部布局指南和滚动视图之间创建约束时,它将在布局和滚动视图的顶部之间产生约束.

【讨论】:

我可能误解了你的意思,但滚动视图的框架矩形为 (0,20,320,528)。所以它没有与superview对齐。 @LordZsolt 嗯。我可以让它复制您所描述的唯一方法是添加带有 0,0,320,568 框架的滚动视图,然后尝试添加顶部布局约束。但是如果我将它拖到 0,20,320,548 然后添加约束(或选择“重置为建议的约束”),我会得到顶部布局指南和滚动视图顶部之间的约束。 这很有趣...我刚刚单击了那个表示约束问题的红色箭头。选择 Add Missing Constraints 并添加了 5 个约束,这解决了问题 o.O @LordZsolt 是的,ib 有时在约束方面有点神秘。

以上是关于界面生成器中的自动布局的主要内容,如果未能解决你的问题,请参考以下文章

界面生成器中的自动布局高度 >= 0 帧

读书笔记iOS-自动布局

自动布局混合代码和界面生成器

界面生成器:MapView 的自动布局

Xcode 中的自动布局失败。不小心禁用了,怎么恢复原状?

代码中设置的自动布局约束未出现在界面生成器中