iPhone XS Max & iPhone XR适配
2018年9月16日
启动图
对于新增机型,LaunchImage需要增加新的图片
机型 | 启动图尺寸 | 命名 |
---|---|---|
iPhone 4s | 640 × 960 | 640_960@2x |
iPhone 5s | 640 × 1136 | 640_1136@2x |
iPhone 6,7,8 | 750 × 1334 | 750_1334@2x |
iPhone 6,7,8 Plus | 1242 × 2208 | 1242_2208@2x |
iPhone X & Xs | 1125 × 2436 | 1125_2436@3x |
iPhone XR | 828 x 1792 | 828_1792@2x |
iPhone XS Max | 1242 x 2688 | 1242_2688@3x |
Ps:需要注意的是XR使用的是**@2x**大小 |
宏定义
对于iPhoneX类型的4款机型,其统一的特点就是刘海加上底部栏的触摸条,需要增加安全区适配
1 | #define IS_IPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? (CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) || CGSizeEqualToSize(CGSizeMake(828, 1792), [[UIScreen mainScreen] currentMode].size) || CGSizeEqualToSize(CGSizeMake(1242, 2688), [[UIScreen mainScreen] currentMode].size)) : NO) |
1 | #define kNavBarHeight (IS_IPhoneX ? 88.0 : 64.0) |
继承UIScrollView
针对继承自UIScrollView的,需要处理一下内边距
- 第一步:关闭自动调整内边距
1 | if (@available(iOS 11.0, *)) { |
- 第二步:在使用的地方手动设置内边距(千万别全局设置,容易出事)
1 | self.scrollView.contentInset = UIEdgeInsetsMake(0, 0, kBottomBarHeight, 0); |
这样设置以后,底下的触摸区域就能正常显示内容了,而且当UIScrollView滑到最底部的时候,不会被遮住