美文网首页
iPhoneXs iPhoneXs Max iPhoneXr 界

iPhoneXs iPhoneXs Max iPhoneXr 界

作者: 代码移动工程师 | 来源:发表于2019-01-31 10:12 被阅读15次
    image

    由上图可见 iPhoneXs 的屏幕尺寸和去年的iPhoneX是一样的,所以今年不需要做特殊处理。
    主要处理下后面的两款新的尺寸机型:

    去年适配的iPhoneX 的分辨率:2436 * 1125 || pt: 812 * 375
    iPhoneXr的分辨率:1792 * 828 || pt: 896 * 414
    iPhoneXs 的分辨率: 2436 * 1125 || pt: 812 * 375
    iPhoneXs Max 的分辨率:2688 * 1242 || pt: 896 * 414

    导航栏和tabBar的高度是一样的,所以需要在原来判断iPhoneX的基础上增加两种机型.

    //判断是否是ipad
    #define isPad ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
    //判断iPhone4系列
    #define kiPhone4 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
    //判断iPhone5系列
    #define kiPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
    //判断iPhone6系列
    #define kiPhone6 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(750, 1334), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
    //判断iphone6+系列
    #define kiPhone6Plus ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2208), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
    //判断iPhoneX
    #define IS_IPHONE_X ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
    //判断iPHoneXr
    #define IS_IPHONE_Xr ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(828, 1792), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
    //判断iPhoneXs
    #define IS_IPHONE_Xs ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
    //判断iPhoneXs Max
    #define IS_IPHONE_Xs_Max ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2688), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
    
    

    navBar和tabBar的判断

    //iPhoneX系列
    #define Height_StatusBar ((IS_IPHONE_X==YES || IS_IPHONE_Xr ==YES || IS_IPHONE_Xs== YES || IS_IPHONE_Xs_Max== YES) ? 44.0 : 20.0)
    #define Height_NavBar ((IS_IPHONE_X==YES || IS_IPHONE_Xr ==YES || IS_IPHONE_Xs== YES || IS_IPHONE_Xs_Max== YES) ? 88.0 : 64.0)
    #define Height_TabBar ((IS_IPHONE_X==YES || IS_IPHONE_Xr ==YES || IS_IPHONE_Xs== YES || IS_IPHONE_Xs_Max== YES) ? 83.0 : 49.0)
    

    相关文章

      网友评论

          本文标题:iPhoneXs iPhoneXs Max iPhoneXr 界

          本文链接:https://www.haomeiwen.com/subject/hqkksqtx.html