【问题标题】:UIScrollView & AutoLayout - UIScrollView Over scrolling (showing excessive whitespace at bottom)UIScrollView & AutoLayout - UIScrollView 过度滚动(在底部显示过多的空白)
【发布时间】:2014-08-12 21:09:28
【问题描述】:

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

  • UIScrollView
  • 内容视图(UIView)

    • 电子邮件文本字段
    • 密码文本字段
    • 登录按钮

我需要我的应用在纵向和横向上都能完美运行,因此我开始设置不同的约束以使 AutoLayout 正常工作。我终于将所有 UI 元素都放在了纵向和横向的正确位置,但问题是我的滚动视图滚动太多,并且在完全滚动时在视图底部留下了很多空白区域。我想解决这个问题并保持紧张,但我不知道为什么。显然,滚动视图的 contentSize 对于 y 值设置得过大,但我不想通过编程方式解决此问题,因为我确信那里应该有“正确”的修复。

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

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

【问题讨论】:

标签: ios objective-c iphone uiscrollview autolayout


【解决方案1】:

要调整滚动视图的高度,你需要做以下两件事:-

  1. 在滚动视图的大小检查器中,将固有大小更改为“PlaceHolder”。
  2. 确保您已添加足够的约束以计算滚动视图的高度。由于滚动视图中的内容具有静态高度,因此您可以简单地向滚动视图添加高度约束。

【讨论】:

  • 更新 - 添加高度约束和编辑 ContentView 的底部间距约束后,我的问题解决了!
【解决方案2】:

我不是 100% 确定这一点,但可能是视图延伸到导航栏上,导致滚动视图的高度比它应有的高得多。如果是这种情况,那么自动布局视图会导致元素显示在其他任何地方,而不是您希望它们出现的位置。

您需要在属性检查器中禁用 Extends Under Top Bars。

【讨论】:

  • 我在滚动视图的属性检查器中找不到“在顶部栏下扩展”选项
  • @Mike Simz,选择你的视图控制器 > 选择属性检查器 > 在 Extended Edges 下你会发现“Under Top Bars”
【解决方案3】:

我也有滚动视图的问题,我的问题是在 iOS8 中,滚动视图从顶部留下了一些空白。我疯了,终于在这篇文章中看到了 Ali Awais 的解决方案并修复了它

这里是阿里的解决方案和链接

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

White space scroll view

-anoop

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-20
    • 2018-11-23
    • 1970-01-01
    • 2020-11-17
    • 2013-06-03
    • 1970-01-01
    • 2020-12-07
    • 2012-09-25
    相关资源
    最近更新 更多