UIScrollView控制器无法完全滚动

时间:2016-04-17 07:20:10

标签: swift uiscrollview ios-autolayout

我很确定这与可怕的AutoLayout有关。 (自从2天以来一直在努力争取它)

所以我有点掌握它,但现在我有问题,我的UIScrollView没有完全向下滚动,图片更好地解释这些东西 SuperView

这是滚动视图 enter image description here

这是内容视图 enter image description here

所以问题是滚动正在发生但是又一次又回升了。所以我无法点击注册按钮

EDIt 1 enter image description here

2 个答案:

答案 0 :(得分:3)

修改

我在github上创建了一个小例子供你查看,here。该项目说明了以下答案,并使用了我描述的技术,而不是其他任何内容。

原始答案:

我会在这里建议一些事情。

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

  2. 视图应该是场景的大小,看起来您希望滚动视图成为全屏,因此也需要是场景的大小。

  3. e.g。如果您默认设计为6Plus,则场景大小为414x736,因此它包含的视图和滚动视图也应为414x736。

    1. 只有内容视图需要与您希望显示的真实内容的大小相同。为了论证,请说内容为414x1000。
    2. 现在,scrollview的约束很简单。它需要零间距到它的所有边缘。

      enter image description here

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

      如果它是一个更简单的视图您可以在界面构建器的scrollview中添加它。最终,无论您采用哪种方式,都可能会失去对界面构建器中内容视图的可见性,因为内容视图比滚动视图大,内容变得模糊。所以,为你找到一个好方法。

      1. 定义内容视图及其所有子视图。内容视图需要高于scrollview,否则它不会滚动。所有内容视图的子视图都需要从上到下定义高度,从左到右定义宽度。在您的情况下,scrollview是垂直滚动而不是水平滚动所以所有宽度需要加起来滚动视图的宽度,但高度需要加到内容视图的整个高度。
      2. 注意:如果你按比例这样做,你的生活将会更容易。如果您使用固定高度执行所有操作,则故事板将在不同的设备大小上中断。

        1. 现在"棘手的位"而且它有点反直觉。您需要将内容视图固定到滚动视图,请记住内容视图的高度比滚动视图高。在Interface Builder的所有其他情况下,将视图固定到superview(0填充)将相应地调整高度(或宽度)。对于滚动视图与其内容视图之间的关系,这不会发生。
        2. 首先固定contentview

          enter image description here

          请注意-400?请记住,内容视图比滚动视图更高,我们会立即更改。

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

          enter image description here

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

          enter image description here

          选择标准值并输入0表示常量。

          你现在应该有一个没有破坏约束的故事板,如果你构建并运行,你应该得到一个滚动视图。

答案 1 :(得分:0)

您的内容视图上的超级视图底部空间设置为-74.0,我不知道您是否有必要这样做的原因,但请尝试将其设置为-8.0。我认为您的滚动视图会自动滚动到0.0标记