swift - UIScrollView Controller 没有完全滚动

标签 swift uiscrollview ios-autolayout

我很确定这与可怕的自动布局有关。 (自 2 天以来一直在尝试掌握它)

所以我稍微掌握了它,但现在我遇到了问题,我的 UIScrollView 没有完全向下滚动,图片更能解释这些事情 SuperView

这是 ScrollView enter image description here

这是内容 View enter image description here

所以问题是滚动正在发生,但随后它又弹回来了。所以我无法点击注册按钮

编辑 1 enter image description here

最佳答案

编辑:

我在 github 上创建了一个小示例供您查看,here .该项目说明了下面的答案,并仅使用了我描述的技术。

原答案:

我会在这里提出一些建议。

  1. 首先,我知道您已经尝试了一段时间但删除了所有当前的限制(我知道这很痛苦)。这样做是为了清楚起见......

  2. View 应该是场景的大小,看起来您希望 ScrollView 是全屏的,所以它也需要是场景的大小。

例如如果您在 6Plus 下设计,默认情况下场景大小为 414x736,因此它包含的 View 和 ScrollView 也应为 414x736。

  1. 只有内容 View 需要是您希望显示的真实内容的大小。为了便于讨论,假设内容为 414x1000。

现在 ScrollView 的约束很简单。它的所有边缘都需要零间距。

enter image description here

您可以通过多种方式将内容 View 添加到 ScrollView 。我尝试这样做的方式因项目而异,主要取决于场景的复杂程度。如果它是一个非常繁忙的场景,我会在界面生成器中将内容 View 保留在 ScrollView 之外,这样我就可以轻松地处理它并可视化整个 View 。然后我在代码中将内容 View 添加到 ScrollView 。

如果它是一个更简单的 View ,您可以将它添加到界面构建器的 ScrollView 中。最终,无论您采用哪种方式,您都可能无法在界面构建器中看到内容 View ,因为内容 View 比 ScrollView 大并且内容变得模糊。因此,尝试并找到适合您的好方法。

  1. 定义内容 View 及其所有 subview 。内容 View 需要比 ScrollView 高,否则它不会滚动。所有内容 View 的 subview 都需要定义从上到下的高度和从左到右的宽度。在您的情况下, ScrollView 是垂直滚动而不是水平滚动,因此所有宽度需要加起来等于 ScrollView 的宽度,但高度需要加起来等于内容 View 的整个高度。

注意:如果您按比例执行此操作,您以后的生活会更轻松。如果您使用固定高度执行所有这些操作, Storyboard将在不同的设备尺寸上中断。

  1. 现在是“棘手的一点”,有点违反直觉。您需要将内容 View 固定到 ScrollView ,记住内容 View 的高度高于 ScrollView 。在 Interface Builder 中的所有其他情况下,将 View 固定到 super View (0 填充)将相应地调整高度(或宽度)。对于 ScrollView 与其内容 View 之间的关系,这不会发生。

首先固定内容 View

enter image description here

注意到 -400 了吗?请记住,内容 View 比 ScrollView 高,我们会立即更改它。

选择我们刚刚创建的底部约束 (-400):

enter image description here

选择常量值旁边的下拉箭头:

enter image description here

选择标准值并输入 0 作为常量。

您现在应该有一个没有破坏约束的 Storyboard ,如果您构建并运行,您应该会获得所需的 ScrollView 。

关于swift - UIScrollView Controller 没有完全滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36673746/

相关文章:

ios - 无法快速访问 JSON 数组

ios - 从 Swift 中的 Socket 获取响应

ios - 具有动态大小内容的 UIScrollView

swift - 如何在 Swift 中显示 NSData 中的 PDF - 如何将 PDF 保存到文档文件夹 Swift - 如何在 Swift 中通过 WebView 显示保存的 NSData 中的 PDF

ios - 在 UIScrollView 仍处于事件状态的情况下检测 View 中的连续触摸位置

ios - UIScrollView 减速过早

ios - 无法使用 Motion-Kit gem 在 RubyMotion 中取消布局约束

ios - 如何根据 View 高度按比例增加字体大小

swift - 设置内容offest,隐藏表格

ios - 如何在不滚动表格的情况下将行插入到 UITableView 的顶部?