iPhoneX 适配笔记
iPhone X 的到来,惊艳的是果粉,苦逼的是程序猿。今天升级到Xcode9.0,运行项目,所谓的全屏 iPhone X,but 页面好像也没有全屏,于是根据之前的适配经验,总算初步解决了这个问题,记录如下,以备后需。
App 页面适配
适配前
问题:App 未全屏显示
解决办法
LaunchImage 中添加一个和 iPhone X 相关的启动图片
* 图片尺寸:1125 * 2436
* Contents.json 中代码如下
{"extent" : "full-screen","idiom" : "iphone","subtype" : "2436h","filename" : "1125_2436.png","minimum-system-version" : "11.0","orientation" : "portrait","scale" : "3x"
}
适配后
页面布局细节
Safe Area
动机
- iPhone X 取消了 Home键,实现了高屏占比,所以默认 View 的区域是全屏幕
- 屏幕四周有圆角、顶部有“刘海”、底部有手势区域
顶部导航栏
* 注意:导航栏高度是 44 + 44
底部手势区域
Safe Area 如下图 (红色区域)
Safe Area 大小
竖屏
▿ UIEdgeInsets- top : 44.0
- left : 0.0
- bottom : 34.0
- right : 0.0
横屏
- top : 0.0
- left : 44.0
- bottom : 21.0
- right : 44.0
自动布局时的注意点
- iOS11 以前,我们布局时,视图的 top 和 bottom 一般参照的是
Top Layout Guide
和Bottom Layout Guide
- iOS11 以后,那两个参照已经
deprecated
(过时)了,而被Safe Area
取代。 Safe Area
要求最低支持 iOS9.0
但凡和父视图相关的 top 或者 bottom 属性的自动布局,应该参照 Safe Area。(之前默认是 Superview,当然如果产品允许,那就是另一回事了)
选择 Safe Area布局示例如下:
未选择 Safe Area布局示例如下:
网上有看到有黑iPhone X的,说用它没法玩王者荣耀等游戏,理由是可能看不到自己有多少钱或者推塔键和信号键没了,对此估计是多虑了!iPhone X 出售之前,游戏厂商肯定会做适配,高屏占比只会提高游戏体验,不会产生那么严重的视觉问题的。
- 适配前后,效果图示例如下:
Xcode9 适配
WKWebViewJavascriptBridge
// 原贴地址:https://github.com/marcuswestin/WebViewJavascriptBridge/issues/278
- (void)webView:(WKWebView *)webView
decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction
decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {// ……// Xcode 升级到9后 WKWebViewJavascriptBridge.m 中有个 bug// 需要在"decisionHandler(WKNavigationActionPolicyCancel);"后加上 return,否则崩溃。// 不升级 Xcode 的话,没问题。decisionHandler(WKNavigationActionPolicyCancel);return;
}
部分页面适配 iPhone X
底部有按钮的页面
适配前
其底部约束如下图:
适配后
其底部约束如下图:
控制器生命周期之viewSafeAreaInsetsDidChange
viewDidLoad
viewWillAppear
viewSafeAreaInsetsDidChange
(NEW)viewWillLayoutSubviews
viewDidAppear
可以在 viewSafeAreaInsetsDidChange 后,设置 Safe Area
if #available(iOS 11.0, *) {self.additionalSafeAreaInsets = UIEdgeInsetsMake(10, 0, 0, 34)
}
内容不定时更新,未完待续 ~~~
我相信填的坑越多,后面的路越好走,加油!
iPhoneX 适配笔记相关推荐
- ios iphonex适配
一.前言 iOS11发布也有一段时间了,每次版本升级,相关的适配工作当然是下个版本的核心工作之一.而且这次iOS11的更新,相对于iOS10的更新来说,改动点还是比较多的.除了iOS11系统的更新之外 ...
- 苹果状态栏HTML,有关HTML5页面在iPhoneX适配问题
1. iPhoneX的介绍 屏幕尺寸 我们熟知的iPhone系列开发尺寸概要如下: △ iPhone各机型的开发尺寸 转化成我们熟知的像素尺寸: △ 每个机型的多维度尺寸 倍图其实就是像素尺寸和开 ...
- H5中 iphoneX适配
关于H5页面在iPhoneX适配 1. iPhoneX的介绍 屏幕尺寸 我们熟知的iPhone系列开发尺寸概要如下: △ iPhone各机型的开发尺寸 转化成我们熟知的像素尺寸: △ 每个机型的多 ...
- iphonex适配游戏_iPhoneX王者荣耀适配问题 iPhoneX游戏问题详解
王者荣耀v1.31.4.18 安卓最新官方版 类型:角色扮演大小:469.3M语言:中文 评分:7.6 标签: 立即下载 iPhoneX是苹果最近上市的一款非常高端的手机,相信很多小伙伴在iPhone ...
- iPhoneX适配问题 iOS刘海屏 安全区域处理 IOS小黑条处理 IOS兼容处理
IphoneX适配问题 iOS刘海屏 安全区域处理 前言 适配前需要了解的几个关键字 安全区域 viewport-fit env() 和 constant() 适配的方法 第一步 设置网页在可视区的布 ...
- Android全面屏适配笔记
由于现在的刘海屏.穿孔屏越来越多,所以现在针对这些屏幕的适配工作也越来越麻烦.有必要自己记录一份适配笔记了,防止以后要用的时候在网上找不到. (这是在没有做任何适配的情况下,直接运行老代码的效果.可以 ...
- iPhoneX 适配方案
绝对长度单位 英寸 厘米 毫米 磅 pc inch cm mm pt pica 相对长度单位 是网页设计中使用最多的长度单位,包括px.em.rem等 屏幕尺寸 指屏幕的对角线的长度,单位是英寸,1英 ...
- 有关HTML5页面在iPhoneX适配问题
这篇文章主要介绍了有关HTML5页面在iPhoneX适配问题,需要的朋友可以参考下 1. iPhoneX的介绍 屏幕尺寸 我们熟知的iPhone系列开发尺寸概要如下: △ iPhone各机型的开发 ...
- iphone x php兼容吗,关于iphoneX 适配客户端H5页面的问题
这篇文章主要给大家介绍了关于iphoneX 适配客户端H5页面的相关资料,文中介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面一起学习学习吧. 前言 目前,很多APP设计师 ...
最新文章
- 拼多多谋定500个供应链品牌 农民丰收节交易会“拼农货”
- 数据结构(三)之单链表反向查找
- [Objective-C语言教程]动态绑定(32)
- LeetCode 66. 加一
- 初识C++之运算符重载
- C#转C++的一点分享
- max日期最大值为0_C语言编写程序输出10个整数中最小值或最大值
- CentOS _ RHEL 防止Kernel升级
- 如何编写高效优雅 Java 程序
- H3C PBR实验(策略路由)
- javascript轻松解决前端数据排序(互换,置顶,上移,下移),快收藏吧
- 青岛理工大学QUT期末考试《电子商务概论》思维导图
- python处理ts_python将ts转换成MP4
- 2017年杭州市大学生自主创业政策
- 西南大学计算机科学学院官网,西南大学计算机与信息科学学院研究生导师简介-李艳涛...
- 封闭解、解析解和数值解定义
- 在unik中,写一个Go HTTP服务器
- 用python庆祝生日_雷吉娜用搞笑的歌曲庆祝自己50岁的生日:“今天一个婊子老了”...
- winSCP 集成PuTTY附下载
- 晨读一年的复盘会议_一年后,在家中远程办公,网真和视频会议
热门文章
- 工资条: EmailSender部分
- php红包退回通知,PHP红包算法
- Detecting Causality in Complex Ecosystems(检测复杂生态系统中的因果关系附件)
- 首金奥运健儿杨倩,获得金牌和奖金缴纳个税吗?雅戈尔赠送她一套房,交税吗?
- 结合《穹顶之下》看中、美宽带提速
- 认识 ESP-IDF-v4.3+工程结构(ESP32-C3应用调整示例)
- 选中物体高亮显示(MR开发日志)
- VulnHub系列之Lampiao渗透测试
- 计算机无法安装windows系统怎么办,电脑无法安装Win10怎么解决
- 单击屏幕亮屏流程分析