点击蓝字

关注我们

只有那些疯狂到以为自己可以改变世界的人,才能改变这个世界。

前言

北京时间今天凌晨1点,苹果再一次让全世界沸腾。iPhone X 带给我们的最大改变:全屏 Super Retina显示屏。它提供了更多的内容显示空间,同时也营造了更加深入的沉浸感。作为 iOS 开发者,在为强大的 Face ID 和全面屏欣喜的同时,我更担忧“齐刘海”的适配! 下面结合官方的人机交互指南,来了解下如何设计 App 才能在iPhone X 和其他所有 iOS 设备上都看起来很棒。

人机交互指南

屏幕大小

在竖屏下,iPhone X 上的显示的宽度与 iPhone 6,iPhone 7和 iPhone 8的4.7“显示屏的宽度保持一致。然而,iPhone X 比4.7”显示屏高了145个点,这导致增加了大约20%的内容垂直空间。

Portrait

Landscape

1125px × 2436px (375pt × 812pt @3x)

2436px × 1125px (812pt × 375pt @3x)

布局

在 iPhone X 布局中,最关键的是:必须确保布局填满屏幕,同时又不会被设备的圆角,传感器外壳或用于访问主屏幕的指示灯所遮盖。

可喜的是,大多数标准的系统提供的UI元素和控件(如 navigation bars,tables 和 collections)都已经为新外形做了很好的适配。 背景已经延伸到显示器的边缘,并且UI元件被很恰当地插入和定位在安全区域。 因此,对于具有自定义布局的 App,支持iPhone X 也应该比较容易,特别是如果使用了 AotuLayout 并遵守安全区域(safe area)和边距布局(margin layout)指南。这些在上文都已经有过较详细的阐述。 下面说几点需要特别注意的:

在 iPhone X 上预览 App: 在拿到新机之前,也可以先使用 Simulator 来预览和检查下布局问题。 但是一些依赖硬件的功能,如图像效果和交互体验,最好还是在真机上预览。

始终保持全屏体验: 确保背景延伸到显示区域的边缘,并且垂直可滚动的布局(如 tables 和 collections)一直延续到底部。

防止边缘内容被裁剪: 一般来说,内容应该是居中对称的,这样它在任何方向看起来都会很棒,不会被边角角或设备外壳夹住,或被主屏幕的指示器遮挡。 为了获得最佳效果,请使用标准的系统界面元素和 AutoLayout 构建界面。 所有 App 都应遵循 UIKit 定义的安全区域和布局边距,因为这些区域可以根据设备和上下文进行适当的填充。 安全区域还可以防止内容覆盖status bar, navigation bar, toolbar, 以及 tab bar.

注意 status bar 的高度: status bar 在iPhone X 上比在其他 iPhone上更高。 如果假定你固定 status bar 的高度用于将内容定位在 status bar 的下方,那么现在必须更新你的的 App,才能根据用户的设备动态定位内容。 特别需要注意,当背景任务(如录音和位置跟踪)处于活动状态时,iPhone X上的状态栏不会改变高度。

重新考虑隐藏 status bar: iPhone X 较之显示高度为4.7“iPhone 的显示屏提供了更多的内容垂直空间,status bar 占据的只是扩展出来的屏幕区域。况且 status bar 更直观的显示用户有用的信息,如果非要隐藏状态栏,那最好用与这些信息同等重要的内容替代。

注意长宽比差异: iPhone X 具有不同于4.7“iPhone 的长宽比。因此,全屏4.7”iPhone 图形在iPhone X 上全屏显示时出现裁剪或 letterboxing 。同样,全屏iPhone X 图形全屏显示在4.7“iPhone 上时也会被裁剪或 pillarboxing ,因此要确保重要的视觉内容适配这两种尺寸。

避免交互式控件出现在屏幕底部和角落: iPhone X 提供了显示屏底部的滑动手势来访问主屏幕和应用程序切换器的新交互方式,这些手势可能会取消在此区域中实现的自定义手势。 况且屏幕的两个角落过多复杂的交互也不是最佳体验的良好实践。

不要遮挡或者特别修饰显示特性来引起用户注意: 请勿尝试隐藏设备的圆角、传感器外壳,或者通过在屏幕顶部和底部放置控件来访问主屏幕的引导。也要特别注意不要试图使用像括号,边框或各种符号等视觉修饰这些特殊区域。

为了轻松访问主屏幕允许自动隐藏指示器: 当开启自动隐藏时,如果用户离开屏幕几秒钟,指示器将消失。 当用户再次触摸屏幕时,它会重新出现。 这种行为应该只能用于提升观看体验,如播放视频或照片幻灯片。

色彩

iPhone X 的显示器支持 P3 色彩空间,它可以产生比 sRGB 更丰富,更饱和的颜色。

可以使用 wide color 来增强视觉体验。 它可以让照片和视频更加逼真生动。

手势

想必大家都在发布会上看到了,iPhone X 上的显示屏可以使用屏幕边缘手势来访问主屏幕,应用程序切换器,通知中心和控制中心。适应这个新变化的同时,对于开发者要特别注意:避免干扰系统范围的屏幕边缘手势:用户依赖这些手势在每个 App 中操作,所以在极少数情况下,比如游戏这种强调沉浸式体验的 App 可能需要自定义的屏幕边缘手势,优先级高于系统的手势。 这种行为(称为边缘保护)应该谨慎使用,因为它使得用户难以访问系统级的操作。

补充的注意事项

1、认证方法准确:iPhone X 支持 Face ID进行身份验证。 如果你的 App 集成了 Apple Pay 或其他系统身份验证功能,请务必注意不要在 iPhone X 上引用 Touch ID。同样地,也请确保不要在支持Touch ID 的设备上引用 Face ID。

2、不要重复增加系统提供的键盘功能:在 iPhone X上,即使使用自定义键盘,Emoji / Globe 按钮和 Dictation 按钮也自动显示在键盘的下方。 你的 App 不能影响这些按钮,因此避免在键盘中重复增加这些按钮造成混乱。

最后

因为 iPhone X 的不同长宽比和“齐刘海”的原因,确实有不少适配工作需要处理。但体验至上的苹果,不会把这算作 iPhone X 的缺陷。在我看来,最大的缺陷是它太贵了。不过,可能这只是我个人的缺点吧……

iPhone X 刘海儿打理指南相关推荐

  1. iPhone应用程序编程指南

    介绍 请注意:本文档之前命名为iPhone OS编程指南. iPhone SDK为创建iPhone的本地应用程序提供必需的工具和资源.在用户的Home屏幕上,iPhone的本地应用程序表示为图标.它们 ...

  2. (转)---iPhone应用程序编程指南

    请注意:本文档之前命名为iPhone OS编程指南. iPhone SDK为创建iPhone的本地应用程序提供必需的工具和资源.在用户的Home屏幕上,iPhone的本地应用程序表示为图标.它们和运行 ...

  3. iPhone游戏开发实践指南

    <iPhone游戏开发实践指南>前言 编写游戏不是一项轻松的任务,即使你是个经验丰富的程序员,游戏的设计模式.术语和思考过程看上去也会有点奇怪和不合常规.由于我的大部分工作时间都投入到了创 ...

  4. iPhone应用程序编程指南(窗口和视图)

    窗口和视图 窗口为内容显示提供背景平台,而视图负责绝大部分的内容描画,并负责响应用户的交互. 什么是窗口和视图? UIWindow的作用 iPhone应用程序通常只有一个窗口,表示为一个UIWindo ...

  5. iPhone X 刘海打理指北

    iPhone X 刘海机于9月13日发布,给科技小春晚带来一波高潮.作为开发人员却多出来一份忧虑,iPhone X 怎么适配?我们 App 的脑袋会不会也长一刘海出来?Tabbar 会不会被圆角?先来 ...

  6. iPhone应用程序编程指南(文本和Web)

    关于文本和Web的支持 文本视图 UIKit框架提供三个显示文本内容的基本类: UILabel 显示静态文本字符串 UITextField 显示单行可编辑文本 UITextView 显示多行可编辑文本 ...

  7. iPhone应用程序编程指南(图形和描画)

    iPhone OS为创建高质量的图形提供两种路径:即通过OpenGL进行渲染,或者通过Quartz.Core Animation.和UIKit进行渲染. UIKit的图形系统 在iPhone OS上, ...

  8. iPhone iOS升级完美指南

    之前买的iPhone 4,用的是iOS 4.1.现在最新的系统是iOS5.x了.(iOS5新功能请看:iPhone升级iOS 5可用iMessage免费发短信) 很多东西无法在旧的系统中使用,所以想升 ...

  9. Iphone 官方的开发指南

    核心应用程序 所有的iPhone应用程序都是基于UIKit框架构建而成的,因此,它们在本质上具有相同的核心架构.UIKit负责提供运行应用程序和协调用户输入及屏幕显示所需要的关键对象.应用程序之间不同 ...

最新文章

  1. java 字母图形_Java字母图形
  2. 删除的页面怎么恢复_手机短信删除了怎么恢复?手机短信恢复最新教程
  3. SHA256CryptoServiceProvider vs SHA256Managed
  4. 马哥2016全新Linux+Python高端运维班第七周作业
  5. 39个史诗级奇葩代码注释,程序不会崩,但程序员会
  6. TensorFlow 教程 --教程--2.2 数据准备
  7. Mac上编译Qt源码教程
  8. 暴风集团仅剩10余人;搜狗告百度输入法侵权案再驳回;Linux 5.6发布 | 极客头条...
  9. Emgu-WPF 激光雷达研究-移动物体跟踪2
  10. 三星s8android8.0,三星S8国行升级安卓8.0 系统流畅度提升
  11. 单片机入门学习十五 STM32单片机学习十二 电容触摸按键
  12. H2单元测试数据库使用调研
  13. 用python绘制家乡汕头的地标建筑
  14. win7计算机u盘不显示盘符,win7系统识别U盘但不显示盘符该如何解决?
  15. 计算机桌面图标怎么变形了,教您电脑桌面图标变大了怎么办
  16. win10 往vmware 黑苹果系统无法拖拽复制问题
  17. Cocos Creator 微信小游戏排行榜
  18. 配置Ubuntu以及ssh
  19. 瞰见 | 开源,会不会变成开源创业的焦油坑?
  20. Window10系统安装V-rep教程

热门文章

  1. SQLite的使用------多张图片存储
  2. 44-Golang中的channel
  3. JAVA毕业设计家教信息管理系统计算机源码+lw文档+系统+调试部署+数据库
  4. 关于俄乌局势的10000字论文
  5. 安装Linuxqq所遇到的问题及解决方法
  6. 解决QT中文5.6 QTextEdit QPlainTextEdit的右键菜单翻译不全
  7. mysql 启动事件
  8. 【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏
  9. 友转 | 翘首期待Bluetooth Asia 2019蓝牙亚洲大会
  10. 小清新的jQuery 幻灯片jQuery ck-slide 图片轮播