美文网首页Xcode报错专区iPhone X 玩转Xcode
iOS:iPhone XR、iPhoneXS、iPhone XS

iOS:iPhone XR、iPhoneXS、iPhone XS

作者: 遛遛食 | 来源:发表于2018-09-19 15:21 被阅读260次

    2018年9月苹果发布了最新款iPhone,分别为iPhone XR、iPhone XS和iPhone XS Max。
    各大网站的测评和详细参数都已有很多了,所以本文不在列举这些。
    在屏幕适配方面与iPhone X的适配完全一致,大家想了解详细的可以查看这篇文章:
    iOS11和iPhone X屏幕适配

    iPhone刘海屏设备对比

    名称 屏幕分辨率 代码获取屏幕大小 使用几倍图
    iPhone X 2436×1125 {375, 812} @3x
    iPhone XR 1792x828 {414, 896} @2x
    iPhone XS 2436×1125 {375, 812} @3x
    iPhone XS Max 2688x1242 {414, 896} @3x

    由上可知:
    iPhone X和iPhone XS屏幕大小是一样的,与iPhone 4.7寸屏系列,屏幕宽度一致,只是高度不一样。
    iPhone XR和iPhone XS Max屏幕大小是一样的,与iPhone5.5寸屏系列,屏幕宽度一致,只是高度不一样。
    并且目前所有的刘海屏的上下安全距离大小是一样的状态栏高度为44,底部高度为34。
    根据这些体征,我们完全可以把对iPhone X的屏幕适配修,改为对所有的刘海屏的屏幕适配。利用其高度的特殊性。
    修改代码如下:

    //屏幕宽高
    #define kScreenW [UIScreen mainScreen].bounds.size.width
    #define kScreenH [UIScreen mainScreen].bounds.size.height
    // 刘海屏 宏定义
    #define iPhoneX (kScreenH == 812.f && kScreenH == 896.f ? YES : NO)
    // 适配刘海屏状态栏高度
    #define CF_StatusBarHeight (iPhoneX ? 44.f : 20.f)
    // 适配iPhone X 导航栏高度
    #define CF_NavHeight (iPhoneX ? 88.f : 64.f)
    
    
    // 适配iPhone X Tabbar距离底部的距离
    #define CF_TabbarSafeBottomMargin (iPhoneX ? 34.f : 0.f)
    // 适配iPhone X Tabbar高度
    #define CF_TabbarHeight (iPhoneX ? (49.f+34.f) : 49.f)
    

    相关文章

      网友评论

      • 老孟:#define iPhoneX (kScreenH == 812.f && kScreenH == 896.f ? YES : NO)
        这里应该是或, 不是且
        遛遛食:是的,谢谢更正

      本文标题:iOS:iPhone XR、iPhoneXS、iPhone XS

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