iOS:检测设备是否为iPhone X系列(无边框)

标签 ios iphone swift uiview ios11

在我的应用程序中,有一些适用于无框设备(iPhoneX、Xs Xs max、Xr)的逻辑。目前它基于设备模型工作,因此,我通过 DeviceKit 框架检测模型。

但我想将此逻辑扩展到 future 的无框设备。可能在一年内我们将有一些额外的无框设备。那么,如何检测设备是否无框?它应该涵盖所有当前和 future 的无边框设备。

我们不能依赖 faceID、safeAreaInset、屏幕高度或尺寸。那么,然后呢?

最佳答案

你可以为一流的“fitler”,比如:

var hasTopNotch: Bool {
    if #available(iOS 11.0, tvOS 11.0, *) {
        return UIApplication.shared.delegate?.window??.safeAreaInsets.top ?? 0 > 20
    }
    return false
}

关于iOS:检测设备是否为iPhone X系列(无边框),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52402477/

相关文章:

objective-c - Objective C block 和变量

ios - 如果快速滑动,UIPageViewController didFinishAnimating 不会被调用

ios - 不使用 uiimagepicker 启动照片库

ios - 我如何继承 Interface Builder 中的圆角矩形 UIButton?

ios - iOS:通过购买进度指示器UIActivityIndi​​catorView在应用内购买

iphone - 谷歌 OAuth 错误 -1001

iphone - UIView ivar 与标记本地 UIView var

ios - 如何判断 completionHandler 在哪个队列上执行?

ios - 如何在 Swift 中将 Int 转换为字符

ios - 3 tableView Sections with custom Cell Segues swift