iOS 【适配iPhone XR/iPhone XS Max】

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fenghuangjc/article/details/82756403

启动图

iPhone XR:828px x 1792px
iPhone XS Max: 1242px x 2688px

LaunchImage中只有iPhone X/iPhone XS

项目中使用LaunchImage做启动图,旧版Xcode的LaunchImage中可能没有iPhone XR/iPhone XS Max的图片框,Xcode升级到最新版后,就会多出iPhone XR、iPhone XS Max两个图片框。

XCode9 LaunchImage
在这里插入图片描述

XCode10 GM LaunchImage
在这里插入图片描述

iPhone XR / XS Max 对老版本兼容请求

如果我们只设置iPhone X的启动图,没有设置iPhone XR/iPhone XS Max启动图。iPhone XR/iPhone XS Max会默认使用iPhone X的启动图。

判断是否是iPhone X时需要注意

以前判断是否是iPhone X,主要是对顶部安全区做些特殊处理。鉴于iPhone X/XS/XR/XS Max底部都会有安全区,所以可以用safeAreaInsets.bottom > 0.0来判断是否是iPhone X/XS/XR/XS Max。
safeAreaInsets只在iOS11以及之后的版本可用

static inline BOOL isIPhoneXSeries() {
    BOOL iPhoneXSeries = NO;
    if (UIDevice.currentDevice.userInterfaceIdiom != UIUserInterfaceIdiomPhone) {
        return iPhoneXSeries;
    }
    
    if (@available(iOS 11.0, *)) {
        UIWindow *mainWindow = [[[UIApplication sharedApplication] delegate] window];
        if (mainWindow.safeAreaInsets.bottom > 0.0) {
            iPhoneXSeries = YES;
        }
    }
    
    return iPhoneXSeries;
}

猜你喜欢

转载自blog.csdn.net/fenghuangjc/article/details/82756403
今日推荐