在UIStoryboard中向UIScrollView的子视图添加约束的奇怪行为

时间:2017-01-24 18:43:00

标签: ios xcode uiscrollview uistoryboard

我有一个包含UIScrollView的视图控制器,其中包含以下层次结构。

- UIView -- UIScrollView ---- UIImageView ---- UIButton ....

约束UIScrollView的子视图时,右对齐不正确。

Imgur

我的UIScrollView限制:
enter image description here

创建尾随约束后的

UIButton约束 enter image description here

我尝试了什么
起初我以为只是故事板没有正确渲染视图控制器。 Xcode重新启动并重新启动计算机后问题仍然存在。

在包含视图控制器上设置Adjusts Scroll View Insets属性无效。

1 个答案:

答案 0 :(得分:1)

Scrollviews有点棘手,因为他们可以横向和纵向滚动内容。

如果您考虑一下,滚动视图无法知道其内容宽度,您必须设置它。这就是为什么你的按钮不在应有的位置。

如果您希望视图仅垂直滚动,首先必须将内容宽度设置为滚动视图的宽度(更准确地说是滚动视图的父级宽度)。

实现此目的的通常方法是在scrollView中使用唯一的子视图,并将其用作内容视图。 因此,在滚动视图中添加一个UIView,添加约束以使其填充滚动视图(即顶部,前导,尾部和底部间距= 0)。 接下来,最重要的约束:添加宽度约束,以便您的内容视图的宽度等于scrollview的父宽度(在您的情况下,可能是您的viewController的视图。

就是这样。现在,您可以将所需的任何内容添加到内容视图中。 (您的内容视图也需要具有高度,固定高度或从上到下的约束)

ScrollView Setup