好像是"Safe area layout guide before ios 9".
如果我触发 Use Safe Area Layout Guides
会发生错误至少在 XCode 中,这是否意味着不可能同时支持这两种设备?有什么建议吗?谢谢。
最佳答案
以 iOS 8 最低目标支持 iPhone X 是完全可能的。(事实上,这就是我们目前在可汗学院应用程序中所拥有的。)
我们所做的是应用 safeAreaInsets
在我们的 Swift 代码中使用 #available
函数,像这样:
public override func safeAreaInsetsDidChange() {
if #available(iOS 11.0, *) {
super.safeAreaInsetsDidChange()
self.contentCatalogHeaderView?.safeAreaInsetsTopOverride = safeAreaInsets.top
self.collectionViewLayout.safeAreaInsetsTop = safeAreaInsets.top
}
}
从您的问题来看,您似乎在讨论是否使用 Storyboard 中的复选框来启用安全区域插入。如果启用了安全区域插入,我不确定 Storyboard 是否可以支持 iOS 8(我怀疑这是不可能的)。但是,您始终可以存储对布局约束的引用,并使用上述
#available
在代码中更新其常量。功能。(在 Objective-C 中,代码看起来几乎相同,只需将其格式化如下:
- (void)viewSafeAreaInsetsDidChange {
if (@available(iOS 11.0, *)) {
[super viewSafeAreaInsetsDidChange];
[self.view setNeedsLayout];
}
}
关于xcode - 这可以在同一个项目中支持 iPhone X 和 iOS 8 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46616469/