美文网首页IOS深入浅出iOS
iPhoneX、iPhoneXS、iPhoneXR、iPhone

iPhoneX、iPhoneXS、iPhoneXR、iPhone

作者: 子疯zp | 来源:发表于2018-09-19 09:51 被阅读1184次
    苹果所有设备屏幕尺寸

    上图为先苹果所有设备屏幕尺寸,可以看到最新的iPhoneXS和去年的iPhoneX尺寸一样,iPhoneXR和iPhoneXSMax屏幕尺寸一样,不一样的是iPhoneXR为@2先倍图,图片这些不用管,只要名字后缀命名好就行。
    今年当苹果发布新手机前,有很多人会觉得又要加班搞适配了,其实不然,上面我说了他们的规律,只需要在原来适配iPhoneX的基础上加一个判断即可。


    iPhoneXS和去年的iPhoneX
    iPhoneXR和iPhoneXSMax

    通过上面两张图片可以看出来,他们的安全域都一样,StatusBar的高都是44pt,底部都有Home虚拟按键区34pt,所以做适配的时候只需要判断是iPhoneX或者是iPhoneXS或者是iPhoneXR或者是iPhoneXSMax就行。

    //获得屏幕的宽高
    #define kScreenWidth ([UIScreen mainScreen].bounds.size.width)
    #define kScreenHeight ([UIScreen mainScreen].bounds.size.height)
    //iPhoneX / iPhoneXS
    #define  isIphoneX_XS     (kScreenWidth == 375.f && kScreenHeight == 812.f ? YES : NO)
    //iPhoneXR / iPhoneXSMax
    #define  isIphoneXR_XSMax    (kScreenWidth == 414.f && kScreenHeight == 896.f ? YES : NO)
    //异性全面屏
    #define   isFullScreen    (isIphoneX_XS || isIphoneXR_XSMax)
    
    // Status bar height.
    #define  StatusBarHeight     (isFullScreen ? 44.f : 20.f)
    
    // Navigation bar height.
    #define  NavigationBarHeight  44.f
    
    // Tabbar height.
    #define  TabbarHeight         (isFullScreen ? (49.f+34.f) : 49.f)
    
    // Tabbar safe bottom margin.
    #define  TabbarSafeBottomMargin         (isFullScreen ? 34.f : 0.f)
    
    // Status bar & navigation bar height.
    #define  StatusBarAndNavigationBarHeight  (isFullScreen ? 88.f : 64.f)
    

    判断是不是异性全面屏幕
    #define isFullScreen (isIphoneX_XS || isIphoneXR_XSMax)
    是在适配iPhoneX的基础上加的判断,OK打完收工!

    相关文章

      网友评论

        本文标题:iPhoneX、iPhoneXS、iPhoneXR、iPhone

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