编者按:基于很多文章都只是翻译了官方的原文,并没有加入自己的想法和见解,所以我决定自己试着适配 iPhone X,如果出现了失误或者问题,请多指教。毕竟写文章的初衷是为了跟大家一起进步和探讨呢~
这里用 iPhone 6 举例子是因为大部分设计师都用 iPhone 6 来做设计稿,方便大家理解,其实 iPhone 8也是这个分辨率。
iPhone 6 :750×1334px(375×667px @2x)
iPhone X :1125×2436px (375×812px @3x)
在逻辑像素上 iPhone X 的宽度和 iPhone 6 保持一致,只是高度高了145px(812-667),如果是用@1x做设计稿,那么在适配 iPhone X 的时候会方便很多,因为只需要增加高度就能得到 iPhone X 的大小,所有的 Symbol 基本不变,只是复制几个苹果爸爸的Symbol 到你的Symbol 里面,用来做 iPhone X 的设计稿。但是如果用@2x 来做设计稿会稍微麻烦些,毕竟Sketch UI Kit 都是基于@1x 来做设计稿的,所以只能把 symbol 重新解散,然后做成@2x大小的尺寸。
虽然它们的逻辑像素宽度一致,但是他们的像素分辨率是不一样的,iPhone 6 采用@2x切图,iPhone X 采用@3x 切图。有人会用@2x 做设计稿,那怎么适配 iPhone X 设计稿,难道要缩放? iPhone 6 (750×1334px)尺寸到 iPhone X(1125×2436px),虽然两者的宽度关系是1.5倍,但是通过缩放做 iPhone X 也是相当麻烦,因为你的 Sketch 设计稿里面可能存在 Symbol,所以这样的做法是行不通的。但如果你的团队都是用@2x 来做设计稿的话,也没什么问题,接下来就提供一个更简单的方法解决 iPhone X 的适配问题。
我列出了 iPhone X 的三种分辨率的尺寸:375×812px(@1x),750×1624px(@2x),1125×2436px(@3x)
如果你的团队使用的是750×1334px(@2x)的设计稿,你在适配 iPhone X 的时候可以采用 iPhone X @2x的图来适配,这样就省去了缩放这一步骤,而且开发使用的是逻辑像素即375pt×812px来做 iPhone X 的设计还原的,所以这样设计 iPhone X 是不会影响开发的,因为750×1624px(@2x)还原到@1x 还是375×812px,相信你已经明白了。
1.iPhone X安全区域问题
如果你用@1x 来做设计稿:iPhone X 安全区域是375×734px。
如果你用@2x 来做设计稿:iPhone X 安全区域是750×1468px。
2.如何计算 iPhone X 安全区域
@1x 的 iPhone X 安全区域:
安全区域=812px—Status Bar (44px) +Home Indicator(34px)
@2x 的 iPhone X 安全区域:
安全区域=1624px—Status Bar (88px) +Home Indicator(68px)
在开始之前,我们先看一下其他App怎么适配之前的 iOS 设备的,我们可以知道头部区域采用了等比例的方法来适配,因为只有这样才能保证640×1136px上面能够放得下相应的内容。其他的只需要放置相应的切图即可。
一开始以为头部适配很简单,我们也采用了等比例适配,后来发现没有必要,因为 640×1136px基本可以显示完全。然后我们就开始适配 iPhone X 了,后来开发通过 Xcode 模拟出 iPhone X 的适配结果,我发现问题出现了。和我们的用药助手 iOS 开发讨论了以后,发现原来导航栏的高度不是简单的200px 解决的,这里我们采用的是固定高度的做法而不是采用等比例的做法。一般这块区域可以有2种做法:等比例和固定高度,观察你的页面构成,如果页面内容较少可以采用固定高度的做法。不然的话可能在小屏幕手机有些内容放不下。
在没有 iPhone X 之前,固定高度做法:整体蓝色区域高度给200px 解决问题,不用考虑导航栏问题。
但是 iPhone X 出来了,这样的做法就会行不通,因为 iPhone X 的导航栏高度是44px+44px=88px,比 iPhone 6的导航栏(64px)高了24px,所以正确适配 iPhone X 的做法应该是导航栏区域高度(88px)+(200px-64px)=224px,其实就是 Status Bar 高度多了24px,所以224px 比200px 大了24px。
联系客服