在我的应用程序中,对于无框架设备(iPhoneX、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
}

Swift相关问答推荐

自定义完整屏幕封面动画

VisionOS发送通知

SwiftData:线程1:&Quot;NSFetchRequest找不到实体名称';提醒&q;的NSEntityDescription

如何在visionOS中定制悬停效果区域

ARRaycast Query和前置摄像头(ARFaceTrackingConfiguration)

如何在每天午夜重置布尔值

background Task(.backgroundTask)不适用于MySQL

使用变量(而非固定)的字符串分量进行Swift正则表达式

如何隐藏集合视图中特定的单元格,以避免出现空白空间?

ForEach within List:模式的好处?

如何测试可选 struct 的协议一致性

获取具有关联类型的协议的self

供应和普通数组中具有空值的 map 函数的行为不一致?

如何从另一个 swift 文件中调用函数

ZStack 中的 ProgressView 与 View 的行为不同

如何在 Swift 中的两个 UIView 中心之间添加线?

Xcode swift ui 错误KeyPathComparator仅在 macOS 12.0 或更高版本中可用

Swift 2.0 方法不能标记为@objc,因为参数的类型不能在 Objective-C 中表示

修复 Swift 3 中的警告C-style for Statement is deprecated

更改在变量的 willSet 块中设置的值