Ios UIScrollView&;AutoLayout-UIScrollView覆盖滚动(在底部显示过多的空白)

Ios UIScrollView&;AutoLayout-UIScrollView覆盖滚动(在底部显示过多的空白),ios,objective-c,iphone,uiscrollview,autolayout,Ios,Objective C,Iphone,Uiscrollview,Autolayout,我有一个登录页面,上面有一堆元素: UIScrollView 内容视图(UIView) 电子邮件文本字段 密码文本字段 登录按钮 等等 我需要我的应用程序在纵向和横向两个方向上都能完美运行,所以我开始设置不同的约束,以使自动布局正常工作。我终于将所有UI元素都放在了纵向和横向的正确位置,但问题是我的滚动视图滚动太多,完全滚动时在视图底部留下了大量空白。我想解决这个问题,并保持紧张,但我不知道为什么。显然是scrollview的contentSize对于y值设置得太大了,但我不想通过编程解

我有一个登录页面,上面有一堆元素:

  • UIScrollView
  • 内容视图(UIView)

    • 电子邮件文本字段
    • 密码文本字段
    • 登录按钮
    • 等等
我需要我的应用程序在纵向和横向两个方向上都能完美运行,所以我开始设置不同的约束,以使自动布局正常工作。我终于将所有UI元素都放在了纵向和横向的正确位置,但问题是我的滚动视图滚动太多,完全滚动时在视图底部留下了大量空白。我想解决这个问题,并保持紧张,但我不知道为什么。显然是scrollview的contentSize对于y值设置得太大了,但我不想通过编程解决方案来解决这个问题,因为我确信应该有“正确”的解决方案

我附上了登录页面正常和完全滚动(纵向和横向)的截图,以帮助进一步理解

任何帮助都将不胜感激。谢谢


我不是100%确定,但可能是视图延伸到导航栏上,导致滚动视图的高度比它应该的要大得多。如果是这种情况,则自动布局视图会导致图元显示在除您希望的位置之外的任何其他位置


您需要在属性检查器中禁用顶部栏下的扩展。

要调整滚动视图的高度,您需要执行以下两项操作:-

  • 在滚动视图的大小检查器中,将内部大小更改为“占位符”
  • 确保已添加足够的约束,以便可以计算滚动视图的高度。由于滚动视图中的内容具有静态高度,因此只需向滚动视图添加高度约束即可

  • 我也有scrollview的问题我的问题是在iOS8中scrollview从顶部留下了一些空白。我发疯了,最后我在这篇文章中看到了Ali Awais的解决方案,它解决了这个问题

    以下是阿里的解决方案和链接

    我在iOS 8中遇到了同样的问题,我找到了以下解决方案:-选择添加了滚动视图的视图控件(在storybord中)-在“布局”部分的“属性检查器”中取消选中“调整滚动视图插入”


    -anoop

    我在滚动的属性检查器中找不到“在顶部栏下延伸”选项view@MikeSimz,选择视图控制器>选择属性检查器>在“扩展边”下,您将看到“顶部栏下”的内容。您可能还会发现有用的。更新-在添加高度约束和编辑ContentView的底部间距约束后,我的问题得到了解决!