iPhone X及iOS11适配指南

首先说一下iOS11系统:

//可进行系统版本判断
@available(iOS11.0, *)

1.tableView的self-sizing属性

注意这里有一个巨大的坑,调了一下午才发现这个问题

iOS11的tableView默认开启self-sizing,这个东西不仅仅是自适应行高、分区头(尾),还影响contentOffset以及contentSize,如果所有的cell没有被完全展示过一次,那么这两个属性的值是会莫名其妙发生变化的。所以在牵涉到使用这两个属性做计算的时候特别注意了,最好就是关闭self-sizing功能。

//关闭自适应行高、分区头高、分区尾高:​​​​​​​
self.tableView.estimatedRowHeight = 0;
self.tableView.estimatedSectionHeaderHeight = 0;
self.tableView.estimatedSectionFooterHeight = 0;

2.处理.heic格式(Live Photo)的原图发送:

//0.83保证压缩前后图片大小一致
imageData = UIImageJPEGRePresentation([UIImage imageWithData: imageData], 0.83);

3.MJRefresh刷新控件错位:

//在AppDelegate.m中添加一行代码:

if (@available(iOS11.0, *)){      
    [[UIScrollView appearance] setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentNever];
}

4.打开系统相册,UIImagePickerController内容被导航栏覆盖:

//在present视图前设置

if (@available(iOS11.0, *)){
    [[UIScrollView appearance]setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentAutomatic];
}

//然后在dismiss视图后恢复设置
if (@available(iOS11.0, *)){
    [[UIScrollView appearance]setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentNever];
}


 

然后是iPhone X的适配:

#define iPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)

1.应用启动出现上下有黑边:

iPhone X屏幕尺寸为 375x812,使用的是3倍图,所以需要增加一张尺寸为 1125x2436 的启动图

 

2.应用打包提交版本时:

AppIcon需增加一张尺寸为 1024x1024 的icon

 

3.iPhone X由于小刘海状态栏高度发生变化,由20pt增加到44pt:

所有有关导航栏高度为64pt(或者状态栏20pt)的frame计算,都应该判断当前设配为iPhone X的时候,相应增加24pt

 

4.iPhone X底部tabbar的高度也发生了变化,由原来的49pt增加到了83pt,增加了34pt,做相应计算时需考虑适配

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值