首页 > 解决方案 > UIScrollView 上的 Next Prev 按钮

问题描述

我在 Interface Builder (Xcode 9 / iOS 11) 中的布局有问题。

我有一个 UIScrollview,在它上面我有 2 个按钮(下一个和上一个视图)。如果我将按钮放在滚动视图下,它们就会出现并起作用。但是如果我把它们放在滚动视图上,它们就不会再出现了。

可能是什么问题?

布局按钮和滚动视图:

布局按钮和滚动视图

警告信息:

警告信息

拖动滚动视图 约束

标签: iosxcodeuiscrollview

解决方案


我假设您希望您的按钮在滚动视图上方(而不是下方)。这在 Xcode 11 Interface Builder 中非常简单,它允许您将滚动视图(即其内容视图)的子视图固定到 Frame Layout Guide 或 Content Layout Guide 或两者的组合。

框架布局指南通过基于除滚动视图或其容器之外的任何父视图(换句话说,包含滚动视图的父视图的另一个同级子视图)应用宽度和高度约束来定义内容视图的可见区域的大小。

内容布局指南定义了内容视图的整个区域的大小,任何应用宽度和高度约束都基于相同的,或者当然,大于滚动视图的框架:

在 Xcode 11 Interface Builder 中选择的 Content Layout Guide 提供了滚动视图所需的内在大小约束

使用这些布局指南无需在任一方向切换滚动;将 Content Layout Guide 限制为 scrollview 可见框架的高度或宽度决定了它是可以垂直滚动还是水平滚动。

这意味着,如果您将滚动视图的子视图约束到框架布局指南,它将不会滚动(而且,它将是滚动视图的真正子视图)。

Xcode 11 中添加到 UIScrollView 界面生成器组件的框架和内容布局指南尚未记录;但是,Apple 仍然分发了一个过时的文档,该文档描述了如何使用 Xcode 10 或更早版本在滚动视图中创建 >“浮动视图”。


推荐阅读