自 IOS 8 以来使用自动布局和滚动视图的额外顶部空白

Posted

技术标签:

【中文标题】自 IOS 8 以来使用自动布局和滚动视图的额外顶部空白【英文标题】:Extra top white space since IOS 8 using autolayout and scrollview 【发布时间】:2014-09-25 20:32:40 【问题描述】:

自从对 ios8 进行了新的更新后,我在滚动视图中的内容视图上多了一个空白区域。 我的内容视图应该在我的滚动视图中居中,并且在 IOS7 上运行良好。

结果如下:

这是没有空格的情节提要版本:

我想知道是什么导致了这个额外的空间,ios8 中有什么新东西会导致我的内容视图有额外的空间吗?

也许我需要改变我的视图布局方式?

谢谢!

编辑:我的解决方案是仅取消选中出现问题的视图中的调整滚动条插入。 但是,我接受的以下解决方案也有效。

【问题讨论】:

您是否在 Title View Controller 的 Attributes Inspector 上检查了 Adjust Scroll View Insets?不透明条下的延伸边缘怎么样?您的滚动视图似乎没有在顶部栏下方延伸。 调整滚动条插入被选中,并且都在顶部/底部栏下延伸被选中。如果我只取消选中 AdjustScroll ,则视图实际上不是居中而是在导航栏下方。 我已经使用了您编辑的解决方案,并且效果很好。 【参考方案1】:

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

【讨论】:

这解决了我的问题,无需任何额外的调整。 +1【参考方案2】:

在你的 viewDidLoad 上试试这个滚动视图:

self.automaticallyAdjustsScrollViewInsets = NO;

【讨论】:

为我工作只在 Storyboard 中设置 ViewController.automaticallyAdjustsScrollViewInsets【参考方案3】:

我遇到了同样的问题,我想出了两种可能的解决方案,这两种方法都很糟糕,让我作为一名程序员感到羞耻:

    将可滚动视图的顶部约束到滚动视图的顶部,但使用常量-64,即额外空间的高度。我不知道为什么。 添加一个空的UIImageView 作为UIScrollView 的同级,并将其约束为与根视图的所有四个边齐平。

希望这只是 iOS 8 的一个错误,这样我就可以拿出我的 hack 并从壁架上走下来。

【讨论】:

使用 OP Edit 的解决方案 在第一次回答这个问题时,调整滚动插入没有按预期工作。【参考方案4】:

取消勾选Extend Edges:在主视图的顶栏下,使子视图的顶部距离为0而不是负值。这对我有用。

【讨论】:

【参考方案5】:

在 ViewDidLoad() 集合中 rootScrollView.contentInsetAdjustmentBehavior = .never

为我工作

【讨论】:

以上是关于自 IOS 8 以来使用自动布局和滚动视图的额外顶部空白的主要内容,如果未能解决你的问题,请参考以下文章

带有自动布局的滚动视图内的iOS 8 imageView不起作用

尝试理解 iOS 8 中的 UIScrollView 自动布局

ios滚动 fix布局顶栏消逝

自动布局不会在 iOS 8-Xcode 6 中立即更新帧

如何在 ios 中使用自动布局更改滚动视图内容大小

iOS 8 自定义键盘自动布局键