iPhone X 适配问题集锦

4 篇文章 0 订阅

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;
 };

暂时项目中只遇到这些问题,后续有的话会及时更新!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值