这是否可以在同一个项目中支持iPhone X和iOS 8?
问题描述:
看来如果我在至少XCode中触发Use Safe Area Layout Guides
,将出现"Safe area layout guide before ios 9".
错误,这是否意味着支持这两种设备是不可能的?有什么建议?谢谢。这是否可以在同一个项目中支持iPhone X和iOS 8?
答
这是完全可以支持iPhone X与iOS 8的最低目标(事实上,这正是我们目前在汗学院的应用程序。)
我们所做的是在我们的斯威夫特应用safeAreaInsets
使用#available
功能,像这样的代码:
public override func safeAreaInsetsDidChange() {
if #available(iOS 11.0, *) {
super.safeAreaInsetsDidChange()
self.contentCatalogHeaderView?.safeAreaInsetsTopOverride = safeAreaInsets.top
self.collectionViewLayout.safeAreaInsetsTop = safeAreaInsets.top
}
}
从你的问题,这听起来像你正在辩论是否使用复选框在故事板,使安全区的插图。如果启用了安全区域插入功能,我不确定是否有可能让故事板支持iOS 8(我怀疑这是不可能的)。但是,您始终可以存储对布局约束的引用,并使用上面的#available
函数更新代码中的常量。
(在Objective-C,代码看起来几乎相同,只是格式化是这样的:
- (void)viewSafeAreaInsetsDidChange {
if (@available(iOS 11.0, *)) {
[super viewSafeAreaInsetsDidChange];
[self.view setNeedsLayout];
}
}
在所有的测试中,我所做的答案是否定的我,直到我决定去检查挣扎的。有多少用户仍然使用iOS 8用于我的应用程序,并且它没有。 – MwcsMac