iOS11&IPhoneX适配(1)

1、在iOS 11中,会默认开启获取的一个估算值来获取一个大体的空间大小,导致不能正常显示,可以选择关闭。目前尝试在delegate中处理不能很好的解决,不过可以直接设置:

Swift
if #available(iOS 11.0, *) {
   self.tabView.estimatedSectionHeaderHeight = 0.01
   self.tabView.estimatedSectionFooterHeight = 0.01
 }

OC
if (@available(iOS 11.0, *)) {
    self.tableView.estimatedSectionHeaderHeight = 0.01;
    self.tableView.estimatedSectionFooterHeight = 0.01;
}

2、启动页尺寸不对

删除原来的LauchImage文件夹,然后添加iOS 11+的启动图片(图片尺寸:1125 * 2436 )

3、在iOS11导航栏多了一个LargeTitleView,专门显示大字标题用的,整个导航栏的高度达到了96p,比之前的导航栏多了32p,不过,大字标题默认是关闭的,所以一般情况下,导航栏的高度还是64p。

if #available(iOS 11.0, *) {
     self.tabView.contentInsetAdjustmentBehavior = .never
} else {
     self.automaticallyAdjustsScrollViewInsets = false
}

对于之前导航栏高度直接写成64的地方做以下替换

let kStatusHeight = UIApplication.shared.statusBarFrame.size.height
let navHeight: CGFloat = self.navigationController!.navigationBar.frame.size.height
let kNavHeight: CGFloat = kStatusHeight + navHeight
let navView : GradientNavView = GradientNavView(frame: CGRect(x: 0, y: 0, width: screenWidth, height: kNavHeight))

4、iOS11 中 "MBProgressHUD+NJ"不显示弹框

将原本的
if (view == nil) {
     view = [[UIApplication sharedApplication].windows lastObject];
}
改成
if (view == nil) {
     view = [UIApplication sharedApplication].keyWindow;
}

5、无线模拟测试


配置好后截图.png

6、iOS11下,如果没有设置estimateRowHeight的值,也没有设置rowHeight的值,那contentSize计算初始值是 44

随后会不定期更新哟。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、前言 iOS11发布也有一段时间了,每次版本升级,相关的适配工作当然是下个版本的核心工作之一。而且这次iOS1...
    景铭巴巴阅读 11,056评论 8 105
  • 一、iPhone设备变迁 15款iphone、5种不同比例的屏幕 预装系统;https://baike.baidu...
    我是小胡胡123阅读 1,033评论 0 0
  • 编译器升级xcode9,准备适配一下iphoneX的布局,调试时发现由于一些ios11新特性或者底层变化的原因,x...
    YY程序猿阅读 3,910评论 4 28
  • 借鉴于作者://www.greatytc.com/p/3a9ad4f0fa32?appinstall=0 ...
    IThai阅读 476评论 0 0
  • 随风而逝的不只是年华,还有那恋恋不舍的回忆。三生有幸的相遇,今生有幸的相知。未知的未来,未知的羁绊,渴望安安稳稳的...
    witch肥阅读 211评论 0 0