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

前端 未结 9 842
情话喂你
情话喂你 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:33

    extension UIDevice {
        var hasNotch: Bool
        {
            if #available(iOS 11.0, *)
            {
                let bottom = UIApplication.shared.keyWindow?.safeAreaInsets.bottom ?? 0
                return bottom > 0
            } else
            {
                // Fallback on earlier versions
                return false
            }
        }
    }
    

    Using by

    if UIDevice.current.hasNotch 
    {
        //... consider notch
    } 
    else 
    {
       //... don't have to consider notch
    }
    

提交回复
热议问题