iOS 适配全面屏
Posted st646889325
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 适配全面屏相关的知识,希望对你有一定的参考价值。
一、如何知道手机是全面屏手机?
网上有好多人使用获取手机型号的方式来判断,本人觉得这种方式没有问题,只是作为一名开发者,大家都知道苹果每年都会更新新的机型。大家肯定不希望在每次苹果发布新机型后去更新版本,目前我有两种判断方式:
1.获取状态栏的高度,全面屏手机的状态栏高度为44pt,非全面屏手机的状态栏高度为20pt
CGFloat statusBarheight = [UIApplication sharedApplication].statusBarFrame.size.height;
NSLog(@"%f",statusBarheight);
使用宏定义以下参数,用于屏幕适配处理
//状态栏高度
#define kStatusBarHeight [UIApplication sharedApplication].statusBarFrame.size.height
//导航栏高度
#define kNavigationHeight (kStatusBarHeight + 44)
//tabbar高度
#define kTabBarHeight (kStatusBarHeight == 44 ? 83 : 49)
//顶部的安全距离
#define kTopSafeAreaHeight (kStatusBarHeight - 20)
//底部的安全距离
#define kBottomSafeAreaHeight (kTabBarHeight - 49)
2.获取底部的底部的安全距离,全面屏手机为34,非全面屏手机为0
CGFloat bottomSafeAreaHeight = [UIApplication sharedApplication].delegate.window.safeAreaInsets.bottom;
NSLog(@"%.2f", bottomSafeAreaHeight);
使用宏定义以下参数,用于屏幕适配处理
//底部的安全距离
#define kBottomSafeAreaHeight [UIApplication sharedApplication].delegate.window.safeAreaInsets.bottom
//顶部的安全距离
#define kTopSafeAreaHeight (kBottomSafeAreaHeight == 0 ? 0 : 24)
//状态栏高度
#define kStatusBarHeight (kBottomSafeAreaHeight == 0 ? 20 : 44)
//导航栏高度
#define kNavigationHeight (kBottomSafeAreaHeight == 0 ? 64 : 88)
//tabbar高度
#define kTabBarHeight (kBottomSafeAreaHeight + 49)
以上是关于iOS 适配全面屏的主要内容,如果未能解决你的问题,请参考以下文章