众所周知,Apple每年更新换代,给我们开发者带来了越来越多的适配困难,那么对于目前的X系列都是刘海屏,对于navigationbar和tabbar或者底部悬浮按钮的位置都需要我们进行适配,由于刘海屏的的上下安全域问题,我们需要对X系列进行统一适配,先来看下苹果的X系列的设备屏幕分辨率
- iPhone X 2436*1125 812*375 @3x
- iPhone XS 2436*1125 812*375 @3x
- iPhone XR 1792*828 896*414 @2x
- iPhone XSMax 2688*1242 896*414 @3x
对比过后发现一个问题,X、 XS 他们高度都是812,而XR、XSMax 都是896,那么我们可以断定,目前来说,X系列可以判断为
#define iPhoneX (SCREEN_HEIGHT==812||SCREEN_HEIGHT==896)
对于安全域的适配宏定义可以这么用
//适配iPhoneX
#define STATUSBAR_HEIGHT (iPhoneX ? 44.f : 20.f) //状态栏
#define TABBAR_HEIGHT (iPhoneX ? (49.f+34.f) : 49.f) //Tabbar
#define STATUSBAR_NAVIGATION_HEIGHT (iPhoneX ? 88.f : 64.f) //状态栏 + 导航栏
#define SAFE_BOTTOM_HEIGHT (iPhoneX ? 34.f : 0.f) //X底部高度
至此,屏幕的适配基本达到可用状态,目前在项目中还未遇到问题。
网友评论