欢迎来到代码驿站!

iOS代码

当前位置:首页 > 移动开发 > iOS代码

iOS 11更新后及iPhone X推出后工程中遇到的问题及适配方法

时间:2021-03-28 09:15:23|栏目:iOS代码|点击:

1.UITableView滑动时右侧的滑动条忽长忽短的乱跳以及MJRefresh上拉刷新死循环

这是因为tableView在iOS11默认使用Self-Sizing,tableView的estimatedRowHeight、estimatedSectionHeaderHeight、estimatedSectionFooterHeight三个高度估算属性由默认的0变成了UITableViewAutomaticDimension,MJRefresh的KVO会监听错误的contentoffset,造成不停进行上拉加载操作,

解决方法可以再全局里面将上面3个属性的默认值设置为0即可

UITableView.appearance.estimatedRowHeight = 0;
UITableView.appearance.estimatedSectionFooterHeight = 0;
UITableView.appearance.estimatedSectionHeaderHeight = 0;

2.在iOS 11中tableview的contentsize默认下移了64高度

在iOS 11中UIViewCOntroller的 automaticallyAdjustsScrollViewInsets 属性被废弃了取而代之的是UIScrollVIew的contentInsetAdjustmentBehavior属性,同样的也可以更改默认的值

if (@available(iOS 11.0, *)) {
  UIScrollView.appearance.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
} else {
  // Fallback on earlier versions
  self.automaticallyAdjustsScrollViewInsets = NO;
}

然而这样写在调用相册的时候当推出系统相册的时候将系统页面contentSize的下移取消掉了导致出现了大问题,所以又将上面的默认值去掉在特定的界面修改即可

3.项目在iPhone X上运行时上下都有巨大的黑边

解决方法:因为项目中是用Assets中的LaunchImage, 这样就可以修改Assets中的LaunchImage,添加iPhoneX的Launch图(1125*2436)即可,但是

iOS 11以前,导航栏的高度是64,其中状态栏statusBar的高度是20,底部tabbar的高度是49。

iOS 11之后,iPhoneX的导航栏的高度是88,其中状态栏的statusBar的高度变成了44, 底部的tabbar变成了83。

iPhoneX的底部增加了虚拟Home区,由于安全区域的原因默认tabBar的高度由49变为83,增高了34,所以自定义的底部TabBar也需要修改其适配方案。

总结

上一篇:iOS中的表单按钮选项UIActionSheet常用方法整理

栏    目:iOS代码

下一篇:iOS应用程序之间的几种跳转情况详解

本文标题:iOS 11更新后及iPhone X推出后工程中遇到的问题及适配方法

本文地址:http://www.codeinn.net/misctech/89446.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有