2.单位英寸(inch)
1英寸=2.54厘米=25.4毫米
3.手机宽高
上表中的宽度和高度(宽度/)是手机的物理尺寸,包括显示屏和边框。
下面是宽度和高度的示意图:
4.屏幕尺寸
我们平常所说的屏幕尺寸是4英寸,屏幕尺寸4.7英寸是指显示屏的对角线长度()。
以下是~6+的屏幕尺寸规格示意图:
5. 像素密度PPI
PPI(Pixel Per Inch by):表示沿对角线每英寸的像素数()。
PPI值越高,显示器能显示的密度越高,也就是俗称的分辨率越高,颗粒感越弱。
根据毕达哥拉斯定理可知,(s)的PPI计算公式为:
由于像素离散采样的混叠效应,计算结果略有不同。
6. 比例因子(比例逻辑点和像素) (1) 比例原点
早期的屏幕分辨率是320*480(PPI=163),iOS绘制图形(//)都是点(in):
1 点 = 1 像素(每英寸点数=每英寸像素=PPI)
后来在中国,同样尺寸(3.5英寸)的屏幕采用了显示技术。 水平和垂直方向的像素密度都放大到2倍,像素分辨率提高到(320x2)x(480x2)=(PPI=326)。 图像分辨率提高到4倍(1 Point渲染成2x2像素矩阵)。
但对于开发者来说,iOS上绘制图形的API仍然使用点(pt,注意区分印刷行业的“磅”)作为单位。 在同一逻辑坐标系()下:
1点=比例*像素(在~6中苹果手机屏幕分辨率,比例因子scale=2;在+中,比例因子scale=3)。
可以理解为:
比例尺 = 绝对长度比(点/像素) = 单位长度内的数量比(像素/点)
(2).规模
该属性在.h中定义:
// 带 . 的比例尺(只读)
@(,) (4_0);
-------------------------------------------------- ----------------------------------
这个值的范围是从这个。
空间是 . -,比例尺为1.0点一像素。 ,刻度为 2.0 点为 4 。
-------------------------------------------------- ----------------------------------
为了自动适应分辨率,系统会根据设备的实际分辨率自动给.scale赋值。 该属性对于开发人员来说是只读的。
(3)。
iOS8添加新属性:
// 的规模
@(,)(8_0);
下面是+下的输出,乍一看和scale没有太大区别:
-------------------------------------------------- ----------------------------------
(lldb)p ()[[ ] 比例]
() 1 美元 = 3
(lldb) p()[[ ] ]
() $2 = 3
-------------------------------------------------- ----------------------------------
(4)型号识别
在相同逻辑分辨率下,可以通过scale参数来识别是否是(s)。 下面定义了一个宏,用于根据参数检测模型是否为+:
-------------------------------------------------- ----------------------------------
// 不是垫
#(IOM() ==电话)
// 根据其规模加上
#S(&& [[] ] == 3.0f)
-------------------------------------------------- ----------------------------------
那么,在分辨率和比例相同的情况下,如何区分4s和5s的型号呢? 通过[[ ]型号]只能识别iPad和iPod的类别。 确定具体型号需要通过(“hw.”)获取详细的设备参数信息进行识别。
7、&
8.@2x/@3x及高倍图像适配(一)@2x
@ 与我们迄今为止在所有 iOS 上使用的相同“”,其中每个用户都在每个 、 和 上。
在当前时代,我们只需要 icon.png 即可为应用程序提供图标(或按钮纹理)。 对于当今的约 6 个显示器,需要制作额外的 @2x 高分辨率版本。
例如~6中,scale=1,使用的图标是(.size=); 在 ~6 中,scale=2,需要 100×(image.size=, 乘以 image.scale= in),并将其命名为 icon @2x.png。
如果APP想要兼容两者~,需要提供两种分辨率的图片:icon.png/[email protected]。
(2)@3x
@一个新的“”,其中点是。 A @2x a 2 × 2 of 4 ; @3x 点是 9 的 3 × 3 。”
+实际渲染时,/1.15(->),准确的说应该是@2.46x。 为了方便开发者,苹果使用@3x材质,然后将其缩放到@2.46x。
参考:《为什么6 Plus要把3倍渲染分辨率缩小到1080p屏幕?》 》《6 Plus奇怪分辨率详解》《6 Plus屏幕分辨率》
如果APP要同时兼容~+,需要提供三种分辨率的图片:icon.png/[email protected]/[email protected]。
需要注意的是,iOS APP图标的大小和命名需要符合相关规范。
(3) 高倍图像文件的命名
对于4/5/6和6+型号,需要根据分辨率提供相应的高倍图像,并在文件名中添加相应的后缀,否则会出现拉伸(/)扭曲(模糊或锯齿)角落)。
以下两类初始化API是基于高倍图像的适配:
+:该方法使用系统缓存,适用于表视图重复加载图片的情况。 同时,API根据比例自动搜索包含相应高倍图像后缀(@2x)的文件。 如果未找到,则设置默认 image.scale=1.0。 因此,使用这种方法,不需要专门指定高倍图像后缀。 实际操作时,如果系统发现当前设备是屏幕(scale=2),会自动查找“*@2x.png”命名格式的图片,并加载该屏幕的图片素材,否则会扭曲了。
+ile/+:(刻度:)/-le:/-:(刻度:)
这组方法创建的对象不使用系统缓存,并且指定的文件名必须包含显式的高倍图像后缀。 如果文件名包含@2x后缀,则image.scale=2.0; 否则,默认是image.scale=1.0,这也会使屏幕扭曲。
目前在适配+时,除了一些大图占满全屏(,)需要提供三图外,其他小图仍然可以使用原来的双图自适应拉伸。
9. & 框架(1)。
// of in (局部坐标系,起点为[0,0])
@(,);
-------------------------------------------------- ----------------------------------
//考虑屏幕旋转的影响,根据实际屏幕方向调整宽度和高度()
#([]..尺寸.宽度)
#([]..尺寸。)
#HT([]..尺寸。)
//不考虑屏幕旋转的影响,只取竖屏的宽和高()
#N([]..尺寸.宽度, []..尺寸.)
#AX([]..尺寸., []..尺寸.宽度)
#HTMIN([]..尺寸.宽度, []..尺寸.)
-------------------------------------------------- ----------------------------------
(2)。
iOS8增加了一个新的属性来输出竖屏像素级分辨率:
// 的 , . (只读)
// 这是基于 a -up 中的。该值与 .
@(,)(8_0);
以下是 + 下的输出:
-------------------------------------------------- ----------------------------------
(lldb) ([(*)[ ] ])
{{0, 0}, {414, 736}}
(lldb) ([(*)[ ] ])
{{0, 0}, {1242, 2208}}
-------------------------------------------------- ----------------------------------
(3)。
// 区域的框架(即条形 if )
//去掉系统状态栏
@(,)我;
-------------------------------------------------- ----------------------------------
// =
#([ ]..尺寸.宽度)
// =-
//注意:当屏幕横置时(),iOS8默认隐藏状态栏,此时=
#T([ ]..尺寸。)
-------------------------------------------------- ----------------------------------
(4)与框架的区别
下图展示了与frame的区别:
10.模型尺寸适配(Scale)
当从 /(s) 过渡到 (s) 时,逻辑上宽度保持不变,高度稍高。 旧的材料和布局通过简单的改造就可以很好地运行。 然而,由于长宽比增加,上端和下端出现黑色粗边(通常)。 从分辨率来看,除了提供这种全屏图像外,其他两张图像基本都是双倍使用(@2x); 从屏幕尺寸来看,垂直布局需要稍作调整。
从(s)到(+),由于长宽比不变,iOS会适配图标、图片、字体等比例放大,清晰度会有所降低。 同时苹果手机屏幕分辨率,绝对坐标布局会导致大屏幕上从左到上的问题。 从分辨率角度考虑,应该使用双倍图像(@2x),但+需要提供更高的三倍图像(@3x); 从屏幕尺寸来看,UI元素尺寸和布局需要重新适配。 视觉协调的匹配。
(1)根据宽度自适应
我们先来看看~6(+)的屏幕长宽比:
(s):分辨率960*640,宽高比1.5
(s):分辨率1136*640,宽高比1.775
:分辨率1334*750,宽高比1.779
+:分辨率1920*1080,宽高比1.778
可以粗略地认为(s)和6(+)的长宽比相同(16:9),即可以等比例缩放。 所以可以通过宽度来适配:
= 宽度*(/320)
这样就有了三组宽度:/4/5、6、6+。 在 , 6+ 下,宽度将水平按比例放大。
(2)根据身高适配
相同宽度下,(s)的屏幕高度低于(s)。 如果垂直布局比较紧张,可以以(s)为基准,根据高度进行适配:
= *(/568)
有四组高度:/4、5、6 和 6+。 在/4下,它将垂直缩小,在/6+下,它将垂直放大。
这里需要注意iOS双环热点栏对垂直布局的影响:作为个人热点使用且有连接时,会多出一行热点连接提示栏“:* " 位于系统状态栏下方,高度垂直下压 20pt,[ ]。 变为 40pt; 当所有连接断开后,热点栏消失,垂直高度恢复正常20pt。 详情请参考《/iOS上打开个人热点纵向适配总结》。
(3)根据字体适配
另外,您可以在【设置】【通用】【辅助功能】中设置调整【较大字体】,APP也可以根据字体大小进行适配:
例如,如果适配了表格视图(:),则无法向左或向右滑动,因此无论字体大小有多大,都不应超过水平方向。 注意限制控制元素内容区域的宽度和间距并设置适当。 表格视图支持上下滑动,因此垂直方向的表格行高和内容区域高度可以根据字体大小进行缩放。
对于不支持垂直方向滑动的视图,在屏幕可见视图区域内排版时,最好不要随字体大小缩放,否则可能会超出指定的宽度和高度。
11.UI相对布局
考虑到模型的多样性,不可能针对(s)、5(s)、6、6+四种屏幕尺寸制作四套视觉交互稿,也不应该从上到下基于某个模型或者从左到右给出绝对标签,但应该关注(/Frame/)中的相对位置以及它们之间的偏移量(),并尽量给出合适的相对布局比例(理想情况下,只给出百分比)。 如果交互绝对按照(s)标记,则在(s)上可能会被挤出屏幕底部,在(+)上可能会水平向左或垂直向上。
开发者根据与屏幕边缘的间距(/),将控件定位在边缘(钉子)处作为参考,然后根据控件大小和间距进行相对计算。 这样,如果钉子移动了,相邻的控件就会向同一个方向偏移,就不会因为局部调整而造成混乱。
苹果在iOS6中已经提出了Auto的概念,它使用约束来定义视图的位置和大小,以适应不同尺寸和分辨率的屏幕。
12.API适配
最后,除了适配屏幕尺寸和分辨率之外,iOS SDK中的相关API也需要适配。 典型例子包括:
(1)->
(2)->
(3):->:
(4)::->:
(5)...
参考:
《iOS设备的屏幕尺寸、分辨率和屏幕边长比例》
“iOS 决定设备屏幕尺寸和分辨率”
“在 iOS8 中”
“ 6/6+ 点尺寸”
《iOS8已经发布,@3x图表留给我们什么?》
“在 Xcode 6 中使用矢量化 PDF (PDF) 支持各种尺寸”
《iOS8适配说明》
《适配iOS8的内存》
《iOS界面适配(一)(二)(三)》
《6/6+适应体验》
《iOS8//(+)适配》
《APP适配iOS8,(+)截图简要说明》
“快速比例兼容适配/6 Plus”
《iOS APP如何适配5s/6/6+三种屏幕尺寸?》
国外苹果ID/美日韩台、新加坡、香港等——韩国区已过年龄认证17+ 19+ 的苹果id游戏应用下载——独享美区ID小火箭账号-——正版苹果商店礼品卡、软件兑换码点击购买
谷歌锁区号/谷歌邮箱老号-购买商城-谷歌PLAY锁区账号/美区、日区,韩区,台区,新加坡谷歌账号等谷歌账号购买、代注册谷歌账号,代申诉解封———>点击购买
原文链接:苹果手机屏幕分辨率 iOS绘制图形的尺寸规格示意图,你了解多少?,转载请注明来源!