Swift UIScrollView控制器未完全滚动

Swift UIScrollView控制器未完全滚动,swift,uiscrollview,ios-autolayout,Swift,Uiscrollview,Ios Autolayout,我很确定这与可怕的自动布局有关。(2天以来一直在努力掌握它) 所以我在某种程度上掌握了它,但现在我遇到了一个问题,我的UIScrollView不能完全向下滚动,图片更能解释这些事情 这是滚动视图 这是内容视图 所以问题是滚动正在发生,但它又重新出现了。所以我不能点击注册按钮 编辑1 您的内容视图上的superview底部空间设置为-74.0,我不知道您这样做是否有原因,但请尝试将其设置为-8.0。我认为您的滚动视图会自动向上滚动到0.0标记您的内容视图上的superview底部空间设置为-

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

所以我在某种程度上掌握了它,但现在我遇到了一个问题,我的UIScrollView不能完全向下滚动,图片更能解释这些事情

这是滚动视图

这是内容视图

所以问题是滚动正在发生,但它又重新出现了。所以我不能点击注册按钮

编辑1

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

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

编辑:

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

原始答案:

这里我有几点建议

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

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

  • e、 g.如果默认情况下设计为6Plus,则场景大小为414x736,因此视图及其包含的滚动视图也应为414x736

  • 只有内容视图需要是您希望显示的真实内容的大小。让我们假设内容为414x1000
  • 现在,scrollview的约束很简单。它的所有边都需要零间距

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

    如果它是一个更简单的视图,您可以将其添加到interface builder中的scrollview中。最终,无论采用哪种方式,都可能在interface builder中丢失内容视图的可见性,因为contentview比scrollview大,并且内容变得模糊。所以,好好玩玩,为你找到一个好方法

  • 定义内容视图及其所有子视图。内容视图需要比滚动视图高,否则它不会滚动。所有内容视图的子视图都需要定义从上到下的高度和从左到右的宽度。在您的情况下,scrollview是垂直滚动而不是水平滚动,因此所有的宽度都需要增加到滚动视图的宽度,但高度需要增加到内容视图的完整高度
  • 注意:如果你按比例这样做,你以后的生活会更轻松。如果在固定高度下执行所有这些操作,故事板将在不同大小的设备上断开

  • 现在是“棘手的一点”,这有点违反直觉。您需要将内容视图固定到scrollview,记住内容视图的高度高于scrollview。在Interface Builder中的所有其他情况下,将视图固定到superview(0填充)将相应地调整高度(或宽度)。对于scrollview和它的内容视图之间的关系,这不会发生
  • 首先锁定contentview

    注意-400?请记住,内容视图比滚动视图高,我们将立即对此进行更改

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

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

    选择标准值并键入0作为常数

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

    编辑:

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

    原始答案:

    这里我有几点建议

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

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

  • e、 g.如果默认情况下设计为6Plus,则场景大小为414x736,因此视图及其包含的滚动视图也应为414x736

  • 只有内容视图需要是您希望显示的真实内容的大小。让我们假设内容为414x1000
  • 现在,scrollview的约束很简单。它的所有边都需要零间距

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

    如果它是一个更简单的视图,您可以将其添加到interface builder中的scrollview中。最终,无论采用哪种方式,都可能在interface builder中丢失内容视图的可见性,因为contentview比scrollview大,并且内容变得模糊。所以,好好玩玩,为你找到一个好方法

  • 定义内容视图