浅谈iphone X的简单适配

上周Apple大大发布了新的设备,其中最引人注目的莫过于iphone X,对于这款设备官方有详尽的解说官方文档,除了最新的若干AR、人工智能等功能外,我们发现这也是一款全新尺寸的设备。
官方文档指出这款设备的没有home键,当然有若干手势操作代替了home键的功能,同时该设备也是基本的全面屏设备。当然听到了不少吐槽该设备的“前刘海”,但是我认为相对于刘海上添加的功能,这个刘海也无伤大雅,毕竟相比美观,对于我这种务实者来说更看重功能,闲话不多说,我们在苹果发布设备的第一时间对我们的工程做了简单的适配,今天有时间,在这里说一下适配过程和小问题。

屏幕快照 2017-09-19 下午10.25.32.png

我们看一下官方的尺寸说明,发现该设备可支持@3x的分辨率,再看官方的对于适配的说明:

Most apps that use standard, system-provided UI elements like navigation bars, tables, and collections automatically adapt to the device's new form factor. Background materials extend to the edges of the display and UI elements are appropriately inset and positioned.

大概意思是说一般的原有的UI、导航等视图都可以自行适配,但是我们在第一时间用Xcode9测试了我们的项目,如图:

屏幕快照 2017-09-19 下午11.14.18.png

并没有充满整个屏幕,简单快速适配需要添加相应的启动图

屏幕快照 2017-09-19 下午11.16.45.png

启动图的大小为375x812 @3x

添加之后

屏幕快照 2017-09-19 下午11.22.51.png

此时可以完美的充满整个屏幕了但是还是有一些小问题,特别是在用纯代码的工程中特别爱用

#define SCREENWIDTH [UIScreen mainScreen].bounds.size.width
#define SCREENHIGHT [UIScreen mainScreen].bounds.size.height

这两个宏定义,来获取屏幕的宽高,容易出问题的地方在底部视图的情况,原来的所有机型状态+导航都是64,这里突然变的更大了,原来计算位置的frame现在可能会不在原来的位置上了
由于状态+导航我们有了两个不同的尺寸,方便起见可以使用下边的代码动态获取

CGRect rectStatus = [[UIApplication sharedApplication] statusBarFrame];
NSLog(@"status width - %f", rectStatus.size.width); // 宽度
NSLog(@"status height - %f", rectStatus.size.height);  // 高度


// 导航栏(navigationbar)
CGRect rectNav = self.navigationController.navigationBar.frame;
NSLog(@"nav width - %f", rectNav.size.width); // 宽度
NSLog(@"nav height - %f", rectNav.size.height);  // 高

这样就可以精确地获得frame,特别是以保证视图在底部,再来一张适配好的带导航的图片

屏幕快照 2017-09-19 下午11.40.58.png

至此简单适配完成!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 178,530评论 25 709
  • iOS 9设计规范 中文版 完整版译者注:本文译自苹果官方人机界面指南 iOS Human Interface G...
    海宁Hennie阅读 13,617评论 2 60
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,893评论 4 61
  • 这篇文章不是记录我的抑郁的笔记,是知乎Live上的一场分享,我也没有抑郁。但是不知道从什么时候,开始对于“精神”上...
    晓龙XL阅读 1,861评论 33 35
  • 这么多年 你一直幽居在我的心口 我的心口放下过天地 放下过万物 万物皆说 我从未放下过你 你值得我行遍世间所有的路...
    时光穿梭者阅读 387评论 2 3

友情链接更多精彩内容