为啥这个 UIScrollView 自动布局不起作用?

Posted

技术标签:

【中文标题】为啥这个 UIScrollView 自动布局不起作用?【英文标题】:Why isn't this UIScrollView autolayout working?为什么这个 UIScrollView 自动布局不起作用? 【发布时间】:2014-06-12 22:09:03 【问题描述】:

我有一个简单的程序,里面有一个UIScrollView,还有一个UITextField。我将UIScrollView 限制为在它的四个边上都有0 个空间,我认为这会使它填满屏幕。我将文本字段限制为边缘的标准空间:

但是当它运行时,它会这样做:

我看到technical note,但我还不明白。

如果我给出 width=280 约束,该字段将填满屏幕,但这与自动布局的精神背道而驰。我希望它适应屏幕的宽度,而不是硬编码到情节提要中的 280pt 宽度。该怎么做?

以下是布局错误:

【问题讨论】:

你能从你的 Xcode 中显示错误警告吗?您的文本字段似乎没有足够的约束。您在水平方向上有足够的约束,但在垂直方向上没有 添加了截图。 【参考方案1】:

我找到了自己问题的答案。

答案包含在技术说明中,但我认为解释得不够详细。这篇博文帮助了我:http://spin.atomicobject.com/2014/03/05/uiscrollview-autolayout-ios/

总结:在文本字段上设置宽度约束以关闭 IB 错误,然后选中约束的“占位符,在构建时删除”复选框(在 IB 的属性检查器中)。然后您可以在视图控制器的viewDidLoad 方法中以编程方式添加更好的约束。在这种情况下,我想要将文本字段的左右边缘连接到滚动视图的超级视图边缘(以及屏幕边缘)的约束。你显然不能在 IB 中做出这样的约束。有了这两个约束,即使屏幕旋转,它也能正常工作。

【讨论】:

以上是关于为啥这个 UIScrollView 自动布局不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

iOS7 自动布局与 Tabbar 结合 UIScrollView 和可缩放 UIImageView 不起作用

UIScrollView 使用自动布局

UIScrollView 不能使用情节提要垂直滚动(使用自动布局)?

为啥自动布局约束不起作用?

为啥 View Controller 在 UIScrollView 上方滚动?

为啥这个 UIImageView 会自动居中?