1、Xcode 8.x 新建的项目,在Xcode9中打开,在iPhone x模拟上运行,不是全屏的,如下图:
看到首页的tabbar不在底部,整个首页也没有全屏幕
解决如下:
在项目的Assets中(1),找到设置启动图的LaunchImage(2),选中它,找到(3)的地方,勾选“ios 8.0 and Later”中的Portrait,上传尺寸是1125*2436的启动图。修改后的效果图如下:
2、历史遗留问题,代码中还有很多导航栏和状态栏的高度的值,注意在iPhone X中 状态栏的高度是44.0,不是以前的20.0了,要用代码获取高度
//#pragma mark - 状态栏高度 iPhone X 的状态栏高度是44 其他20
- (CGFloat)statusbarHeight{
CGRect rectOfStatusbar = [[UIApplication sharedApplication] statusBarFrame];
return rectOfStatusbar.size.height;
}
//#pragma mark - 导航栏高度
- (CGFloat)navHeight{
CGRect rectOfNavigationbar = self.navigationController.navigationBar.frame;
return rectOfNavigationbar.size.height;
}
3、自定义底部tabbar的高度问题,若是之前高度固定是49的话,就会出现如下图的样式:
解决方法:将49+34(屏幕底部的虚拟区的高度)即可,如下图:
注意:官网的图,底部的虚拟区的高度是34px
二、swift中适配遇到的问题
1、可以看到tableview的顶部向下偏移20px
是因为我们代码中添加了
//若是设置了true,则不会出现上诉问题
automaticallyAdjustsScrollViewInsets = false;
是由于safeArea安全区域引起的问题,也可以看到automaticallyAdjustsScrollViewInsets这个方法在ios 11中已经弃用了,需要使用contentInsetAdjustmentBehavior属性,
@available(iOS, introduced: 7.0, deprecated: 11.0)
open var automaticallyAdjustsScrollViewInsets: Bool // Defaults to YES
可做如下适配
if #available(iOS 11.0, *) {
groupedTableView.contentInsetAdjustmentBehavior = .never
plainTableView.contentInsetAdjustmentBehavior = .never
scrollView.contentInsetAdjustmentBehavior = .never
} else {
automaticallyAdjustsScrollViewInsets = false;
};
暂时项目中只遇到这些问题,后续有的话会及时更新!