1

I have a UIScrollView inside a UIView and another UIView (the container view) inside the scroll view. Before adaptive layout I pinned the scroll view to fit the external view and set the width and height of the container view (that was pinned to the scroll view too). In this way I could vertically scroll the view.

enter image description here

Now, with adaptive layout, I can't set width because of different screen sizes... which constraint do I have to set up? The only solution I could think was to set width programmatically to the screen size...

4

2 回答 2

2

UIScrollView 和 Autolayout

UIScrollView 类通过更改其边界的原点来滚动其内容。为了使用自动布局,滚动视图中的顶部、左侧、底部和右侧边缘现在意味着其内容视图的边缘。

滚动视图的子视图上的约束必须导致要填充的大小,然后将其解释为滚动视图的内容大小。(这不应与 Auto Layout 使用的intrinsicContentSize方法混淆。)要使用 Auto Layout 调整滚动视图的框架大小,必须明确限制滚动视图的宽度和高度,或者必须绑定滚动视图的边缘到其子树之外的视图。

在您的情况下,“容器视图”必须具有明确的大小,独立于滚动视图的大小。最简单的方法是添加高度和宽度约束,并将它们的constant属性设置为您想要的值。

因此,如果您希望“Container View”成为屏幕的宽度,请添加宽度约束并将其常量设置为运行时的当前屏幕宽度。

于 2015-06-07T16:48:33.350 回答
0

将容器视图的宽度限制为等于根级视图的宽度。移除容器视图的硬编码宽度约束。

于 2015-06-07T19:48:11.080 回答