快速适配
先说结论,找设计师要2张启动图:
iPhone XR:828px x 1792px
iPhone XS Max: 1242px x 2688px
LaunchImage中只有iPhone X/iPhone XS
iPhone XR / XS Max 对老版本兼容请求
如果没有设置iPhone XR/iPhone XS Max启动图但设置了iPhone X的启动图,iPhone XR / XS Max默认会走iPhone X 的尺寸
375ptx812pt,会对内容近乎于等比拉伸放到iPhone XR / XS Max屏幕内,如下图:
1. 代码中判断是否是iPhone X时需要注意
如果你以前是使用设备尺寸来判断iPhone X那就需要修改了,判断iPhone X主要是因为刘海的原因可能要做些特殊处理。鉴于iPhone X/XS/XR/XS Max底部都会有安全距离,所以可以利用safeAreaInsets.bottom > 0.0来判断是否是iPhone X。
safeAreaInsets支持iOS11及以后。
static inline BOOL isIPhoneX() {
BOOL iPhoneX = NO;
if (UIDevice.currentDevice.userInterfaceIdiom != UIUserInterfaceIdiomPhone) {
return iPhoneX;
}
if (@available(iOS 11.0, *)) {
UIWindow *mainWindow = [[[UIApplication sharedApplication] delegate] window];
if (mainWindow.safeAreaInsets.bottom > 0.0) {
iPhoneX = YES;
}
}
return iPhoneX;
}