在 UIStoryboard 中向 UIScrollView 的子视图添加约束的奇怪行为
Strange behaviour adding constraints to subview of UIScrollView within a UIStoryboard
我有一个视图控制器,其中包含具有以下层次结构的 UIScrollView
。
- UIView
-- UIScrollView
---- UIImageView
---- UIButton
....
约束UIScrollView
的子视图时,右对齐不正确。
我的UIScrollView
约束:
UIButton
创建尾随约束后的约束
我试过的
起初我以为只是故事板没有正确渲染视图控制器。 Xcode 重新启动并重新启动计算机后,问题仍然存在。
在包含视图控制器上设置 Adjusts Scroll View Insets
属性 无效。
滚动视图有点棘手,因为它们可以水平和垂直滚动内容。
仔细想想,scrollview没办法知道它的content width,得自己设置。这就是为什么您的按钮不在应有的位置。
如果您希望视图仅垂直滚动,首先必须将内容宽度设置为滚动视图的宽度(更准确地说是滚动视图父级的宽度)。
实现此目的的通常方法是在滚动视图中添加一个唯一的子视图,并将其用作内容视图。
因此,将一个 UIView 添加到您的滚动视图,为其添加约束,以便它填充滚动视图(即顶部、前导、尾随和底部间距 = 0)。
接下来,最重要的约束:添加一个宽度约束,以便您的内容视图的宽度等于滚动视图的父级宽度(在您的情况下,可能是您的 viewController 的视图。
就是这样。现在您可以将任何您想要的内容添加到内容视图中。 (您的内容视图也需要有高度,固定高度或从上到下的限制)
我有一个视图控制器,其中包含具有以下层次结构的 UIScrollView
。
- UIView
-- UIScrollView
---- UIImageView
---- UIButton
....
约束UIScrollView
的子视图时,右对齐不正确。
我的UIScrollView
约束:
UIButton
创建尾随约束后的约束
我试过的
起初我以为只是故事板没有正确渲染视图控制器。 Xcode 重新启动并重新启动计算机后,问题仍然存在。
在包含视图控制器上设置 Adjusts Scroll View Insets
属性 无效。
滚动视图有点棘手,因为它们可以水平和垂直滚动内容。
仔细想想,scrollview没办法知道它的content width,得自己设置。这就是为什么您的按钮不在应有的位置。
如果您希望视图仅垂直滚动,首先必须将内容宽度设置为滚动视图的宽度(更准确地说是滚动视图父级的宽度)。
实现此目的的通常方法是在滚动视图中添加一个唯一的子视图,并将其用作内容视图。 因此,将一个 UIView 添加到您的滚动视图,为其添加约束,以便它填充滚动视图(即顶部、前导、尾随和底部间距 = 0)。 接下来,最重要的约束:添加一个宽度约束,以便您的内容视图的宽度等于滚动视图的父级宽度(在您的情况下,可能是您的 viewController 的视图。
就是这样。现在您可以将任何您想要的内容添加到内容视图中。 (您的内容视图也需要有高度,固定高度或从上到下的限制)