iOS Swift适配高度-刘海屏顶部和底部非安全区高度

说明:heightOfAddtionalHeader为刘海屏多出来的高度,这个高度相比于非iPhoneX以及以后的设备来说多出来的部分.  


iOS Swift适配高度-刘海屏顶部和底部非安全区高度_第1张图片
顶部和底部额外区域的定义


iOS Swift适配高度-刘海屏顶部和底部非安全区高度_第2张图片
整体代码

状态栏高度:

- 对于非iPhoneX设备来说,高度为20.0,

- 对于iPhoneX以及以后的设备高度为44.0; 即为20.0 + heightOfAddtionalHeader(24.0);

所以我们只需要在代码上需要考虑顶部导航栏的高度的地方加上如下代码,那么代码会自动计算导航栏高度;

//刘海屏额外的高度

let heightOfAddtionalHeader:CGFloat= {

    if UIDevice.current.isiPhoneXorLater(){

            return 24.0

    }else{

        return 0.0

    }

}()

导航栏底部:

- 对于非iPhoneX设备来说,高度为0.0,

- 对于iPhoneX以及以后的设备高度为34.0 ; 即为0.0 + heightOfAddtionalFooter(34.0);

所以我们只需要在代码上需要考虑顶部导航栏的高度的地方加上如下代码,那么代码会自动计算导航栏高度;

//底部非安全区域高度

let heightOfAddtionalFooter:CGFloat= {

 if UIDevice.current.isiPhoneXorLater(){

 return 34.0

}else{

 return 0.0

    }

}()


extension UIDevice{

//判断设备是不是iPhoneX以及以上

 publicfuncisiPhoneXorLater() ->Bool{

 let screenHieght = UIScreen.main.nativeBounds.size.height

 if screenHieght == 2436 || screenHieght == 1792 || screenHieght ==2688 || screenHieght ==1624{

 return true

        }

 return false

    }

}

你可能感兴趣的:(iOS Swift适配高度-刘海屏顶部和底部非安全区高度)