热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iphone全部机型_2020年,从全新的iPhone12再谈iPhone屏幕尺寸

之前写的文章《从第一代iPhone细数到iPhone12,iPhone屏幕尺寸进化历程背后的app设计哲学》吸引了众多对iPhone屏幕尺寸或者对app适配感兴趣的读

之前写的文章《从第一代 iPhone 细数到 iPhone 12,iPhone 屏幕尺寸进化历程背后的 app 设计哲学》吸引了众多对 iPhone 屏幕尺寸或者 对 app 适配感兴趣的读者,在文章发布的各个渠道,特别是在少数派引起了一番热烈的讨论。文章从设计、开发等多个角度讲述了 iPhone 屏幕尺寸进化历程背后的 app 设计哲学,希望读者能够从我梳理的历史脉络和总结的进化逻辑中获得启发。同时文章也顺势推测了未来 iPhone 特别是 iPhone 12 系列会出现的一些变化,这部分虽不是文章重点,但当时处于在 iPhone 12 即将发布的时间点,自然也引起了众多读者的兴趣。

69181f7964ef0389d5dd2ea59f501278.png

如今,iPhone 12 、iPhone 12 Pro 系列正式发布,屏幕参数尘埃落定。对比之前文章对 iPhone 12 屏幕参数较为保守的推测,真正的 iPhone 12 屏幕参数变化可谓十分激进。本文就作为之前文章的后续,基于之前文章所讲的 iPhone 屏幕尺寸的进化逻辑,来复盘一下 iPhone 12 的屏幕参数到底是如何变化的,对于普通用户在 iPhone 12 上使用 app 又有什么影响。

如果你还没有阅读过之前的 文章 ,强烈推荐你先阅读,否则本文中的提到到的一些概念你可能会云里雾里😜

(本文章首发于少数派,并发布于我的个人博客 ,也欢迎你来我的个人博客「 向远公园 | Step Park」逛一逛😄。)

bc5c23085cd0b7188366a4a3f99d2aea.png

iPhone 12 系列屏幕的变化

iPhone 12 系列包括 6.1 寸 iPhone 12 机型和 5.4 寸 iPhone 12 mini 机型,全部配备 OLED 屏幕。

8d10897f8d0caf7ce677bba595a16f4e.png

6.1 寸 iPhone 12

6.1 寸 iPhone 12 的屏幕分辨率为 1170px × 2532px,PPI 为 460,与 6.1 寸 iPhone 11 的屏幕分辨率(828px × 1792px)并不相同。在之前文章也有讲到过,虽然是相同尺寸,但屏幕由 LCD 材质换为 OLED 材质,由于成像原理的不同,要想保持同样的清晰度观感,分辨率必须提升。6.1 寸 iPhone 12 的逻辑分辨率为 390pt × 844pt,比例因子为 @3x。Apple 为了保证在屏幕尺寸稍有变大的情况下,PPI 不降低,没有妥协继续使用 375pt 的逻辑分辨率宽度,而是启用了全新的逻辑分辨率宽度「390pt」,仅仅增加了 15pt。由逻辑分辨率宽度为 375pt × 812pt 的 5.8 寸 iPhone 11 Pro 进化到逻辑分辨率宽度为 390pt × 844pt 的 6.1 寸 iPhone 12,两者的宽高比例仍然保持相同,所以其变化逻辑仍然采用了之前文章总结的「 等比放大 」方法。

569917b9dc1b8d7aa335411585a597e8.png

既然出现了全新的逻辑分辨率宽度,那 app 要完美运行在新的机型中就需要进行适配。没有适配新机型的 app 将以 375pt × 812pt@3x(同 5.8 寸 iPhone 11 Pro)的样式放大显示在 iPhone 12 上,相当于把图像放大了 1.04 倍,相比已经适配的 app 看上去会有些模糊(具体观感真机上手后再来补充)。App 要想适配新机型,至少需要通过 Xcode 12.1 及以上版本编译 app,并根据实际情况调整适配 app 布局。

适配的速度就要看各位开发者了,比如下图中的「 我的天气 」app 在 iPhone 12 发售前就已经完成了对 iPhone 12 系列的适配显示。

2c2de5891d521020bab168d36fb366c6.png

5.4 寸 iPhone 12 mini

5.4 寸 iPhone 12 mini 的屏幕分辨率为 1080px × 2340px,PPI 为 476,清晰度位列 iPhone 12 系列第一名。由 iPhone 12 mini 的屏幕分辨率除以比例因子 @3x 得到逻辑分辨率 360pt × 780pt,很多人自然而然地就会以为这就是 iPhone 12 mini 的逻辑分辨率。然而通过已经发布的 Xcode 12.1 GM 版本的模拟器可以查到 iPhone 12 mini 的渲染分辨率(截图的大小)实际为「1125px × 2436px」,比物理分辨率(屏幕的物理参数)放大了 1.04 倍。同当年的 iPhone 6 Plus 一样,Apple 再次使用了一样的变化手法。1125px × 2436px 的渲染分辨率对应的逻辑分辨率为 375pt × 812pt@3x,正是之前 5.8 寸 iPhone 11 Pro 的逻辑分辨率,这样 app 想完美运行在 iPhone 12 mini 上就无需再进行额外的适配工作。但由于像素不是点对点显示的,显示图像可能会有不锐利的问题,但由于其高 PPI 的存在,这个感知不会明显。

7abcef40044cb95802118131c035c997.png

iPhone 12 Pro 系列屏幕的变化

iPhone 12 Pro 系列包括 6.1 寸 iPhone 12 Pro 机型和 6.5 寸 iPhone 12 Pro Max 机型。

c0d8e359ec1b946f64ed4355175e2fea.png

6.1 寸 iPhone 12 Pro

6.1 寸 iPhone 12 Pro 与 6.1 寸 iPhone 12 的屏幕参数完全相同,屏幕分辨率为 1170px × 2532px,PPI 为 460,逻辑分辨率为 390pt × 844pt,比例因子为 @3x。对于 app 适配 iPhone 12 Pro 的逻辑也与 iPhone 12 完全相同,在此不再赘述。

9e851c1173110e1edfb439eddba52f70.png

6.7 寸 iPhone 12 Pro Max

6.7 寸 iPhone 12 Pro Max 的屏幕分辨率为 1284px × 2778px,PPI 为 458。6.7 寸 iPhone 12 Pro Max 的逻辑分辨率为 428pt × 926pt,比例因子为 @3x。同样地,Apple 为了保证在屏幕尺寸稍有变大的情况下,PPI 不降低,没有妥协继续使用 414pt 的逻辑分辨率宽度,而是启用了全新的逻辑分辨率宽度「428pt」,仅仅增加了 14pt。由逻辑分辨率宽度为 414pt × 896pt 的 6.5 寸 iPhone 11 Pro Max 进化到逻辑分辨率宽度为 428pt × 926pt 的 6.7 寸 iPhone 12 Pro Max,两者的宽高比例仍然保持相同,所以其变化逻辑仍然采用了之前文章总结的「 等比放大 」方法。

ac92afbc0884f1749f62957e063630cf.png

对于 app 适配也是一样,app 要完美运行在新的机型中就需要进行适配。没有适配新机型的 app 将以 414pt × 896pt@3x(同 6.5 寸 iPhone 11 Pro Max)的样式放大显示在 iPhone 12 Pro Max 上,相当于把图像放大了 1.03 倍,相比已经适配的 app 看上去会有些模糊(具体观感真机上手后再来补充)。App 要想适配新机型,至少需要通过 Xcode 12.1 及以上版本编译 app,并根据实际情况调整适配 app 布局。

放大显示功能

在之前文章中有讲到目前大部分的 iPhone 机型都配备了放大显示功能,关于放大显示最重要的一点就是,其实质是将高一级的逻辑分辨率 降级 到 同一比例 的低一级的逻辑分辨率。在 iOS 14 Beta 版本中开始出现了 5.8 寸 iPhone 11 Pro( 375pt × 812pt@3x)的放大显示功能,其逻辑分辨率为 320pt × 693pt@3x,当时的推测是这很可能是 5.4 寸 iPhone 12 mini 的真正分辨率。然而现实情况是这只是 Apple 虚构的一个机型分辨率,至少在现在这个时间点,这个机型是不存在的,当我确定这个结论时也是十分诧异。

那这个虚构的逻辑分辨率又用在了哪些地方呢?具体来看:在有了这个虚构的逻辑分辨率 320pt × 693pt 之后,5.8 寸的 iPhone 11 Pro、iPhone Xs、iPhone X 机型自然就支持了放大显示功能。

7c8e32303b44533218a53c963584b30d.png

但由于这个 320pt 的全面屏逻辑分辨率宽度不存在于任何一个现有的机型,要想 app 正常运行在这个逻辑分辨率之下,也得需要进行适配。如果不进行适配,将会以 iPhone 5s 的大小显示,也即上下有黑边。

f0ff50147ede0c1bfb71efaf06688b14.png

再来看全新的 iPhone 12 系列的放大显示,6.7 寸的 iPhone 12 Pro Max 开启放大显示后,会降级到 375pt 宽度,也即 iPhone 11 Pro 大小;6.1 寸 iPhone 12/iPhone 12 Pro 、5.4 寸 iPhone 12 mini 开启放大显示后,都会降级到 320pt 宽度,也即前面提到的虚构机型的大小,如果 app 没有适配全面屏的 320pt 逻辑分辨率宽度,同样会出现上下有黑边的情况。

78a21b8db01a30caac556b0713027d20.png

320pt(全面屏)这个新增的逻辑分辨率宽度隐藏在放大显示功能背后,可能更不会引起 app 开发者的注意,适配的进度可能会更慢。

内容显示数量

至此,iPhone 12 系列在标准显示模式下新增了 390pt(iPhone 12/iPhone 12 Pro)、428pt(iPhone 12 Pro Max)两种新的逻辑分辨率宽度,在放大显示模式下新增了 320pt(iPhone 12/iPhone 12 Pro、iPhone 12 mini) 一种新的逻辑分辨率宽度。总共增加了 390pt、428pt、320pt(全面屏) 三种逻辑分辨率宽度。

逻辑分辨率的大小会决定屏幕上内容显示数量的多少。针对于不同逻辑分辨率的屏幕,下图对比了其内容显示数量。几个值得特别注意的点:

  • 之前的 6.1 寸 iPhone 11 是 414pt 宽度,同 6.5 寸 iPhone 11 Pro Max 一样,而 6.1 寸的 iPhone 12/iPhone 12 Pro 减少到了 390pt 宽度,相比于以前, 横纵向显示数量变少了 ,但比例因子由 @2x 变为 @3x,总体上 PPI 也即清晰度大幅提升了。对于从 iPhone Xʀ、iPhone 11 更新到 iPhone 12、iPhone 12 Pro 的用户在初期可能会不适应。

  • 从 375pt 增加到 390pt,从 414pt 增加到 428pt,虽然横纵向的确可以显示更多的内容,但对比发现后,其实差异不会很明显。

  • iPhone 12/iPhone 12 Pro、iPhone 12 mini 的放大显示都是 320pt,很多 app 可能都没有适配,而且整体承载内容数量较少较挤,并不适合作为日常使用。

47813bbc22eda44684f7faf67dc23a23.png

再附一张 台湾 iOS 开发者 @ethanhuang13 在 Xcode 模拟器使用不同机型显示同一个网站上的内容对比情况。

699c4e997c14d91bdf53e3bbc3c85910.png

Size Class

Size Class 尺寸等级同样是之前文章中所提到的 iPhone 尺寸变化过程中的一个重要概念。

全新的 iPhone 12 系列在竖屏下,毫无悬念,依然同其他 iPhone 一样是「compact width,regular height」。但在横屏下,有几个需要注意的点:

  • 6.1 寸的 iPhone 12/iPhone 12 Pro 系列由于其逻辑分辨率比 6.1 寸 iPhone 11 小一些,所以其横屏的 Size Class 是 「compact width,compact height」,与 iPhone 12 mini、iPhone 11 一样。因此在如「信息」这样支持左右分栏布局样式的 app 上显示时就只能显示某个联系人的短信内容,如下图;

  • 6.7 寸的 iPhone 12 Pro Max 其横屏的 Size Class 自然是 「regular width,compact height」,与 iPhone 11、iPhone 11 Pro Max 一样,在「信息」app 中可以分左右两边显示短信列表和具体的短信内容,如下图。

5fc0446d568314e9e9efe781e44480a4.png

总结

纵观 iPhone 12 全系列的屏幕分辨率变化,Apple 为了保持 PPI 也即屏幕清晰度只增不减,不得不在之前已有的逻辑分辨率宽度上同样利用「 等比放大 」的方法小幅放大了一点形成了两个新的逻辑分辨率宽度:390pt、428pt,同时为了让 iPhone X、iPhone Xs、iPhone 11 Pro、iPhone 12、iPhone 12 Pro、iPhone 12 mini 这些机型都具备「放大显示」功能,暗暗增加了 320pt(全面屏)这个新的逻辑分辨率宽度。整体上可谓十分激进的进化,虽然显示效果达到了最佳,但对于众多开发者和第一批尝鲜的用户来说,不得不有一段时间的阵痛期。这或许也在某些层面体现了 Apple 的偏执吧。

而 iPhone 12 mini 再次使用了渲染分辨率与物理分辨率不同的操作方法,也有些许延续传统的感觉。

至此到 2020 年的现在这个时间点,iPhone 的逻辑分辨率宽度进化到了 320pt(非全面屏、全面屏)、375pt(非全面屏、全面屏)、414pt(非全面屏、全面屏)、390pt(全面屏)、428pt(全面屏) 八小种、五大种。下图用图示的方式展示了从 2007 年到 2020 年 iPhone 屏幕尺寸进化的历程,包括尺寸、物理分辨率、渲染分辨率、逻辑分辨率、PPI、放大显示功能、进化逻辑等,具体可点击查看大图。

ad4ef13311e65017cf95f34fb50294f2.png

iPhone 屏幕逻辑分辨率激进变化的背景下,或许 Apple 已释放出了足够的信号:未来的屏幕大小不再是一成不变的,app 的显示区域也是可大可小的,针对于不同设备尺寸适配 app 的方法已经过时,循着 Apple 给出的方法和工具,让 app 自由地在屏幕上呈现,或许才能找到未来的路。

参考文章:

  • How iOS Apps Adapt to the various iPhone 12 Screen Sizes | by Geoff Hackworth
  • Michael Tsai - Blog - iPhone 12 and iPhone 12 Pro
  • 台湾 iOS 开发者 @ethanhuang13 的推文

更多热门文章

d38e53806aa481ccfb693739e6b6cce9.png045254f62865fa71ae8e32ff54fd4b20.pngd0f70b8ffb78d95fa487c21b586eb855.png



推荐阅读
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • Xcode离线安装帮助文档1.在线查看帮助文件:Xcode下查看帮助文件,菜单Help-DeveloperDocumentation在右上角搜索框中即可检索,但速度很慢 ... [详细]
  • iOS 苹果开发证书失效的解决方案(Failed to locate or generate matching signing assets)
    从2月14日开始,上传程序的同学可能会遇到提示上传失败的提示.并且打开自己的钥匙串,发现所有的证书全部都显示此证书签发者无效.出现以下情况:Failedtolocateorgene ... [详细]
  • iOS开发Debug和Release的理解
    2019独角兽企业重金招聘Python工程师标准参考:http:blog.csdn.netmad1989articledetails406580331&# ... [详细]
  • iOS推送手机消息的技术背后的奥秘揭示
    作者:allenzzhao,腾讯IEG运营开发工程师消息推送我们几乎每天都会用到,但你知道iOS中的消息推送是如何实现的吗?本文将从推送权限申请,到本地和远程消息推送, ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • Google在I/O开发者大会详细介绍Android N系统的更新和安全性提升
    Google在2016年的I/O开发者大会上详细介绍了Android N系统的更新和安全性提升。Android N系统在安全方面支持无缝升级更新和修补漏洞,引入了基于文件的数据加密系统和移动版本的Chrome浏览器可以识别恶意网站等新的安全机制。在性能方面,Android N内置了先进的图形处理系统Vulkan,加入了JIT编译器以提高安装效率和减少应用程序的占用空间。此外,Android N还具有自动关闭长时间未使用的后台应用程序来释放系统资源的机制。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 苹果新手机必须需要设置什么软件?
    第一、设置iCloud账户,这会非常重要,很多服务和资料同步都依赖你设置的这个iCloud账户,而且请一定是要你自己可以控制的iCloud账户,并且也只有你才能控制;第二、在iCl ... [详细]
  • 1.webkit内核中的一些私有的meta标签,这些meta标签在开发webapp时起到非常重要的作用(1) ... [详细]
  • Myappcrashedandthecodeisthefollowing:我的应用程序崩溃,代码如下:elseif(){CGDetailVie ... [详细]
author-avatar
贵族灬阿宝
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有