博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
适配iOS 11和iPhoneX屏幕适配遇到的一些坑
阅读量:6376 次
发布时间:2019-06-23

本文共 1410 字,大约阅读时间需要 4 分钟。

随着iOS 11正式版,以及Xcode9正式版的发布,已有项目工程对于新版本系统和机型的适配就提上了日程。下面简单讲一讲遇到的一些坑,同时也向在解决问题中查阅的资料文章作者表示感谢!

安全区域

坑NO.1 iOS 11下APP中tableView内容下移20pt

整个页面隐藏了导航栏(自定义导航栏),下面就是一个tableview,加上了MJRefresh第三方。可以明显看出上方状态栏的部分空白,整个tableview内容下滑了20pt。

原因:iOS 11中automaticallyAdjustsScrollViewInsets属性被废弃了,self.automaticallyAdjustsScrollViewInsets = NO 就等于没有设置(默认是YES),于是顶部就多了一定的contentInset。点开系统头文件就会有提示说明

解决方法:

if (@available(iOS 11.0, *)) {    self.tableView.contentInsetAdjustmentBehavior = 	UIScrollViewContentInsetAdjustmentNever;} else {    self.automaticallyAdjustsScrollViewInsets = NO;}复制代码

关于安全区域适配,简书上的这篇文章总结介绍得非常详细,请参考这篇文章。

iPhoneX

坑NO.2 LaunchImage问题

关于带刘海的iPhoneX,如果你的APP在iPhoneX上运行发现没有充满屏幕,上下有黑色区域,那么你应该也像我一样LaunchImage没有用storyboard而是用的Assets。Assets中解决办法添加一张启动图,尺寸为1125x2436,或者直接启用LaunchScreen.storyboard。 另外在这里提供一个判断iPhoneX机型的宏定义,前提是launchimage已经设置好。

#define IS_iPhoneX  UIScreen.mainScreen.currentMode.size.width == 1125 && UIScreen.mainScreen.currentMode.size.height == 2436复制代码

坑NO.3 storyboard、xib上的安全区问题

本人在做解决第二个坑的时候,创建了storyboard作为启动图使用。按照以往的思路,搞一个imageView覆盖到整个控制器的view上去,拉好约束,一编译 编译发现系统报了个错。

原因:

苹果在iOS7中引入的Top Layout Guide和Bottom Layout Guide,这些布局指南在iOS 11中被弃用,取而代之的是Safe Area Layout Guide.

因为项目要求系统最低适配iOS 8,所以要对这里进行处理。

解决方法:

1、打开右侧的 Show the File inspetcor 2、去掉 Use Safe Area Layout Guides

如图,这样一来就和之前的界面一样。

目前遇到的就这些坑,欢迎大家指正补充~ 最后,作为该行从业人员,不得不讲一句:“苹果爸爸说啥就是啥??”

转载于:https://juejin.im/post/5a321d006fb9a045167d35b2

你可能感兴趣的文章
快速掌握Python基础语法(下)
查看>>
java虚拟机——运行时数据区域
查看>>
【Android自定义View】绘图之文字篇(三)
查看>>
适配iOS 11和iPhoneX屏幕适配遇到的一些坑
查看>>
Fetch API 简单封装
查看>>
给媳妇做一个记录心情的小程序
查看>>
iOS App无需跳转系统设置自动连接Wi-Fi
查看>>
一道柯里化面试题
查看>>
本科studying abroad 无法毕业申请硕士转学转校处理一切studying abroad 问题
查看>>
RxJava(RxAndroid)的简单学习
查看>>
Java8 函数式编程之函数接口(下)
查看>>
【本人秃顶程序员】MySQL 全表 COUNT(*) 简述
查看>>
centos7中使用febootstrap自制一个基础的centos 7.2的docker镜像
查看>>
系统优化和克隆过程
查看>>
C#开发Unity游戏教程之判断语句
查看>>
Windows自带Android模拟器启动失败
查看>>
安装 SharePoint Server 2007
查看>>
springmvc mybatis 调用sql , 转成json
查看>>
linux centos 7 网卡突然不能上网异常解决
查看>>
shell+Python实现简单的链路监控
查看>>