自 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不起作用