iOS 9 和 10:使用安全区域布局指南时在屏幕顶部添加了空白区域
Posted
技术标签:
【中文标题】iOS 9 和 10:使用安全区域布局指南时在屏幕顶部添加了空白区域【英文标题】:iOS 9 and 10: blank space added at the screen top while using safe area layout guide 【发布时间】:2018-03-20 10:43:14 【问题描述】:在我的swift 4
项目中,我将ios 9.0
设置为deployement target
,并且我正在使用safe area layout guide
。
在storyboard
中,我总是在我的主要view
顶部空间和safe area
顶部之间给出0 作为值。当我在iOS 9
或iOS 10
中运行应用程序时,顶部有一个空白区域。
如何在不禁用safe area layout guide
的情况下删除此空白?
【问题讨论】:
你在用navigationController吗? @MeenorRanpura 是的,但我隐藏了导航栏。在 iOS 11 中一切正常,我在使用 iOS 9 和 10 时遇到问题 【参考方案1】:转到Storyboard
> Select the ViewController
> Attribute Inspector
(右窗格中从右数第三个选项卡。)> 取消选中Adjust Scroll View insets
。
【讨论】:
你能解释一下吗?【参考方案2】:我猜你是在 iPhone X 上测试?您可以通过以下方式更改安全区域插图:
var newSafeArea = UIEdgeInsets()
newSafeArea.top -= 20
self.additionalSafeAreaInsets = newSafeArea
【讨论】:
我在 iOS 6 中测试 iOS 9 我收到了这个错误'additionalSafeAreaInsets' is only available on iOS 11.0 or newer' 是的,有道理。错过了你在 iOS 11 以下测试【参考方案3】:我无法解释原因,但在故事板视图中不计算导航栏高度,因此您将有一个(通常为 44 像素)空白。您可以像 Lazy 所说的那样,通过打开 Adjust Scroll View insets
来删除它,或者您可以通过在 viewDidLoad()
中设置 edgesForExtendedLayout = []
以编程方式完成它
https://developer.apple.com/documentation/uikit/uiviewcontroller/1621515-edgesforextendedlayout 告诉你更多关于它的信息。
【讨论】:
以上是关于iOS 9 和 10:使用安全区域布局指南时在屏幕顶部添加了空白区域的主要内容,如果未能解决你的问题,请参考以下文章
在 nib 文件中使用安全区域布局,但将部署目标保留为 iOS 8
安全区域布局指南不适用于 UITableView 的 BackgroundView