启动图

对于新增机型,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
2
3
#define kNavBarHeight       (IS_IPhoneX ? 88.0 : 64.0)
#define kBottomBarHeight (IS_IPhoneX ? 34.0 : 0)
#define kContentHeight (kScreenHeight - kNavBarHeight-kBottomBarHeight)

继承UIScrollView

针对继承自UIScrollView的,需要处理一下内边距

  • 第一步:关闭自动调整内边距
1
2
3
if (@available(iOS 11.0, *)) {
[UIScrollView appearance].contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
  • 第二步:在使用的地方手动设置内边距(千万别全局设置,容易出事)
1
self.scrollView.contentInset = UIEdgeInsetsMake(0, 0, kBottomBarHeight, 0);

这样设置以后,底下的触摸区域就能正常显示内容了,而且当UIScrollView滑到最底部的时候,不会被遮住