iOS 适配全面屏iPhone X系列手机-Swift版

一、如何知道手机是全面屏手机?

         网上有好多人使用获取手机型号的方式来判断,本人觉得这种方式没有问题,只是作为一名开发者,大家都知道苹果每年都会更新新的机型。大家肯定不希望在每次苹果发布新机型后去更新版本,目前我有两种判断方式:

1.获取状态栏的高度,全面屏手机的状态栏高度为44pt,非全面屏手机的状态栏高度为20pt

let statusBarHeight = UIApplication.shared.statusBarFrame.height;
print(statusBarHeight);

在公共的文件中定义以下常量即可使用:

//状态栏高度
let statusBarHeight = UIApplication.shared.statusBarFrame.height;
//导航栏高度
let navigationHeight = (statusBarHeight + 44)
//tabbar高度
let tabBarHeight = (statusBarHeight == 44 ? 83 : 49)
//顶部的安全距离
let topSafeAreaHeight = (statusBarHeight - 20)
//底部的安全距离
let bottomSafeAreaHeight = (tabBarHeight - 49)

2.获取底部的底部的安全距离,全面屏手机为34,非全面屏手机为0

let bottomSafeAreaHeight =  UIApplication.shared.windows.last?.safeAreaInsets.bottom ?? 0.0;
print(bottomSafeAreaHeight)

使用宏定义以下参数,用于屏幕适配处理

//底部的安全距离
let bottomSafeAreaHeight =  UIApplication.shared.windows.first?.safeAreaInsets.bottom ?? 0.0
//顶部的安全距离
let topSafeAreaHeight = (bottomSafeAreaHeight == 0 ? 0 : 24)
//状态栏高度
let statusBarHeight = UIApplication.shared.statusBarFrame.height;
//导航栏高度
let navigationHeight = (bottomSafeAreaHeight == 0 ? 64 : 88)
//tabbar高度
let tabBarHeight = (bottomSafeAreaHeight + 49)

 

 

你可能感兴趣的:(Swift)