具有自适应布局的 UIScrollView
Posted
技术标签:
【中文标题】具有自适应布局的 UIScrollView【英文标题】:UIScrollView with Adaptive Layout 【发布时间】:2015-06-07 16:24:14 【问题描述】:我在 UIView 中有一个 UIScrollView,在滚动视图中有另一个 UIView(容器视图)。在自适应布局之前,我固定滚动视图以适应外部视图并设置容器视图的宽度和高度(也固定到滚动视图)。这样我就可以垂直滚动视图了。
现在,使用自适应布局,由于屏幕尺寸不同,我无法设置宽度...我必须设置哪个约束?我能想到的唯一解决方案是以编程方式将宽度设置为屏幕大小......
【问题讨论】:
【参考方案1】:来自UIScrollView and Autolayout:
UIScrollView 类通过更改其边界的原点来滚动其内容。为了使用自动布局,滚动视图中的顶部、左侧、底部和右侧边缘现在意味着其内容视图的边缘。
对滚动视图的子视图的约束必须导致要填充的大小,然后将其解释为滚动视图的内容大小。(这不应与@987654322 混淆@ 用于 Auto Layout 的方法。)要使用 Auto Layout 调整滚动视图的框架大小,约束必须明确关于滚动视图的宽度和高度,或者滚动视图的边缘必须绑定到其子树之外的视图。
在您的情况下,“容器视图”必须具有明确的大小,独立于滚动视图的大小。最简单的方法是添加高度和宽度约束,并将其 constant
属性设置为您想要的值。
所以,如果你想让“Container View”成为屏幕的宽度,添加一个宽度约束,并在运行时将其常量设置为当前屏幕宽度。
【讨论】:
【参考方案2】:将容器视图的宽度限制为等于根级视图的宽度。移除容器视图的硬编码宽度约束。
【讨论】:
以上是关于具有自适应布局的 UIScrollView的主要内容,如果未能解决你的问题,请参考以下文章