iOS: Detect if the device is iPhone X family (frameless)

前端 未结 9 859
情话喂你
情话喂你 2021-02-05 04:07

In my app there is some logic for frameless devices (iPhoneX, Xs Xs max, Xr). Currently it works base on the model of the devices, so, I detect the model by DeviceKit framework.

9条回答
  •  逝去的感伤
    2021-02-05 04:35

    Since keyWindow was deprecated in iOS 13, based on the solution to find keyWindow from here, this one works for me

    extension UIDevice {
        var hasNotch: Bool {
            if #available(iOS 11.0, *) {
                let keyWindow = UIApplication.shared.windows.filter {$0.isKeyWindow}.first
                return keyWindow?.safeAreaInsets.bottom ?? 0 > 0
            }
            return false
        }
    
    }
    

提交回复
热议问题