xcode - 这可以在同一个项目中支持 iPhone X 和 iOS 8 吗?

标签 xcode iphone-x

好像是"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/

相关文章:

ios - Xamarin ios 缺少应用商店图标警告

ios - AVDepthData 是否从 iPhone X 上的自拍相机捕获深度数据?

iOS 11 : UICollectionView on iPhone X is sized wrong

ios - 调整 UITextView 框架以使用 UIKeyboardFrameEndUserInfoKey 不起作用

xcode - iOS - Watch Companion 应用程序中未显示应用程序图标

iphone - 如何通过从 iPhone 中的 UITapGestureRecognizer 的角落拖动 View 来增加 View 的大小和高度?

ios - 在 Storyboard xcode 7 中为具有不同宽度的两个 View 设置常量

objective-c - Xcode:链接框架与其他框架

ios - iPhone X 上的现有应用程序 "scale"如何处理?

ios - 我现在可以将 iPhone X 屏幕截图提交到 App Store 吗?