怎样查看苹果手机设置相机像素的像素?

苹果Retina已过时 手机分辨率终点在哪
出处: 泡泡网原创 && 作者:张前前&&
本文主要有以下观点:①为什么说iPhone的Retina屏幕是一种过时的显示技术。②326PPI的Retina并不是极限,而只是一个及格线。③手机的分辨率极限在哪?人眼极限是600PPI。④无2K,不A屏,OLED屏需要更高的分辨率。正文&&&&自从2010年搭载Retina屏幕的iPhone4发布之后,手机屏幕的军备竞赛就开始了,朝着更大尺寸,更高分辨率的方向极速前进,iPhone对于安卓阵营的分辨率竞赛无疑起着至关重要的促进作用,厂商们喜欢拿自己刚发布的手机屏幕分辨率与iPhone较真,以体现其手机本来就不多的亮点。&&&&主流的16:9的屏幕经历了320P,480P,720P,1080P,2K,对于那些非主流分辨率的就不谈了,因为他们只是长宽比改变了,与以上的这些“P”们没有本质区别。一起来回顾一下手机屏幕的这些里程碑事件&&&&在诺基亚时代,320P已经是很高的分辨率了,由于当时的手机屏幕比现在小得多,所以像素密度尚可,诺基亚N97的分辨率是640*360,在当时已经算是很高的了。&&&&854*480分辨率在2011年左右大行其道,在这之间还出现一种分辨率是960*540。小米mi1就是854*480的屏幕。&&&&2012年开始流行720p,当时三星S3是给我留下最深印象的720P手机,高PPI初现端倪。&&&&第一款1080P的手机是HTC J&butterfly,于日在日本发布,而1080P真正流行开始于2013年,旗舰机纷纷上1080P,比如三星S4,HTC one系列等。&&&&日 -&vivo发布全球第一款2K级别屏幕的智能手机:Xplay&3s。&&&&似乎手机屏幕的分辨率进化永无休止了,但是,手机分辨率提高的背后是对应的PPI(pixels per inch每英寸像素数)的提升,因为手机屏幕也一直在变大,提升分辨率的目的是为了提升PPI。&&&&无疑,手机分辨率的提升在初期阶段带给人的震撼还是很强烈的,可是随着手机分辨率提升到720P级别左右,再往上的分辨率提升带给大众的体验就不够那么直接了,所以720P阶段就已经有人开始质疑更高分辨率的必要性。& & 既然手机分辨率提升的“始作俑者”是苹果,那我们先从苹果说起。&&&&iPhone4发布时,乔布斯提出一个新概念:Retina Display,即视网膜屏。先看看百度百科的解释吧:&&&&所谓“Retina”是一种显示技术,可以将把更多的像素点压缩至一块屏幕里,从而达到更高的分辨率并提高屏幕显示的细腻程度。由摩托罗拉公司研发。最初该技术是用于Moto Aura上。这种分辨率在正常观看距离下足以使人肉眼无法分辨其中的单独像素。也被称为视网膜显示屏。&&&&第三代iPad发布会上,苹果给出了Retina设计标准的公式:&&&&其中 a代表人眼视角,h 代表像素间距,d代表肉眼与屏幕的距离。符合以上条件的屏幕可以使肉眼看不见单个物理像素点。这样的IPS屏幕就可被苹果称作“Retina显示屏”。将通常使用距离代入上公式可知:行动电话显示器的像素密度达到或高于300ppi就不会再出现颗粒感;手持平板类电器显示器的像素密度达到或高于260ppi就不会再出现颗粒感,而苹果电脑的Retina显示器像素密度只要超过200ppi就无法区分出单独的像素。&&&&上面的解释有点晦涩,一句话解释Retina屏幕就是:Retina是使在一定距离下看不出像素点的屏幕显示技术。326PPI的Retina并不是极限,而只是一个及格线&&&&苹果公司所说的326PPI不是人眼分辨的极限,而是在一定距离下达到retina显示效果的最低PPI,所以说326PPI不是极限,只是一个及格线。&&&&人眼所能看到的最大PPI取决于眼球与设备之间的距离,电视机为什么不用很高的分辨率?因为人看电视不是坐在电视机旁而是距离很远,人距离屏幕越远所能识别的PPI越低,so,手机也是一个道理,326只是在一定距离下看不到像素点的最低PPI。& & 显然326PPI已经落伍了,而现在苹果之所以不采用更高分辨率是妥协,iPhone轻薄,电池容量较小,续航不行,现在4.7寸的iPhone6s的分辨率已经让续航捉襟见肘,如果电池瓶颈解决苹果肯定会提高分辨率,对于机身较大可以放更大电池的5.5寸的iPhone6s&plus就采用了1080P屏幕,PPI从iPhone6s的326PPI提高到401PPI。&&&&而对手机分辨率比较有追求的厂商算是三星了。▲5.7寸2K AMOLED屏的三星Note7&&&&因为一幅图片是由无数个像素点拼接出来的,所以理论上密度越高观感越好,从微观上讲,像素点的密度越高,排列越紧密,像素之间的间距越小,把这个放到宏观上来说,像素点密度高,会让一幅图片的灰阶过度越小,像素点达到一定密度之后给人一种跃然纸上的感觉,感觉整个屏幕不是由无数像素点组成的而是只有一个像素点的整体,锐度高,没有灰蒙蒙的感觉。目前的三星S7、S7edge、note7以等机型搭载的2K屏PPI都超过500,初步能体验到这种跃然纸上的感觉,这是低PPI屏幕所达不到的一种体验。手机屏幕分辨率的极限在哪?&&&&因为分辨率的提升背后是屏幕PPI(pixels per inch每英寸像素数)的提升,所以单纯说分辨率的极限是无意义的,最终还是要看PPI。专业屏幕测试公司DisplayMate专家Raymond Soniera认为,人眼所能看到的像素密度可以最高达到600PPI;一开始看到这篇新闻的结论,笔者是持质疑态度的,好奇心是最好的老师,笔者作为手机重度发烧友,对目前常见的1080P以及2K屏笔者裸眼即可以分辨出手机屏幕是AMOLED屏还是LCD,当然笔者也并没有“写轮眼”,而是看久了自然能看出差异。&&&&对于目前5.1寸的三星S7,其采用2K的AMOLED,PPI576,还是能看出些许像素点,而同样PPI的LCD屏,基本上看不出像素点,所以人眼所能区分的分辨率的极限应该就是600PPI。&&&&为了达到600PPI,屏幕分辨率要达到多少呢?目前5寸多的屏幕大概是2.5K分辨率左右,当然这随着屏幕的大小而改变,单纯人眼来看600PPI足够了,当然还要以发展的眼光来看,说不定以后裸眼3D屏幕需要更高分辨率的屏幕。OLED屏幕需要更高的分辨率&&&&由于OLED(主要指目前三星的AMOLED)屏幕独特的像素排列方式,像素是斜着排列的,不是LCD那样标准的RGB排列,在PPI过低情况下显示字体时字体边缘有锯齿感,所以需要更高的分辨率来弥补这个缺点。相对来说,相同PPI的屏幕AMOLED要比LCD更好区分些。▲5.5寸2K AMOLED屏的三星S7 edge&&&&目前三星的2K屏很少出现有文字锯齿感这个问题,而5.2寸以上的1080P的AMOLED部分屏幕还是会出现文字锯齿感,所以有句话叫“无2K,不A屏”还是很有道理的。&&&&另外一个高分屏的应用点是虚拟现实(VR),VR对分辨率是极为敏感的,如果想实现3D全景的视觉震撼,超高的分辨率是基石。&&&&华为消费者BG业务CEO余承东,由于此前在社交网络上言辞较为激烈,所以被粉丝称为:&大嘴&,余承东前两年吐槽2K屏,说6寸以下的屏幕采用2K分辨率是无意义的,这更多的是因为当时的局限性,2K屏带来的体验不足以弥补由此带来的续航,发热,卡顿带来的影响,而且目前2K屏亮度偏低,色域也一般。屏幕像素密度的提升会提高成本,而且单位像素密度越高,对于LCD屏幕来说透光率就会随之降低导致屏幕亮度不高,功耗高,对处理器、显卡的要求也越高,而目前的电池瓶颈也还没解决。说到底,不上2K屏,还是因为技术瓶颈。&&&&而今年包括荣耀V8以及荣耀Note8都采用2K屏,所以时代在发展,还是要用发展的眼光看待。因为时代的局限性,以及看问题的局限性,笔者认为在很长一段时间内,电池瓶颈没解决的情况下, 600PPI最佳。& & 关于屏幕分辨率的这个问题在贴吧和微博里绝大多数人只认Retina,他们会说:“超过326PPI有什么用?我的眼睛就只能看到326PPI了。”殊不知,无用之用方为大用,正是因为这些看不见的没用的超高像素密度,才让裸眼3D成为可能,当一个新技术出现时,要以发展的眼光看待。正如手机屏幕大小,乔布斯定义3.5寸是黄金屏,而到了今天时过境迁明显不再适用,所以还是要以发展的眼光看待问题。&&&&实践是检验真理的唯一标准,不是信条。■
扯扯车精品文章推荐怎么知道手机照片分辨率?苹果5!? - 知乎有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。4被浏览624分享邀请回答添加评论分享收藏感谢收起iPhone屏幕尺寸、分辨率及适配
逻辑分辨率(point)
Scale Factor
设备分辨率(pixel)
2.4 inches (62.1 mm)
4.5 inches (115.5 mm)
2.31 inches (58.6 mm)
4.5 inches (115.2 mm)
2.33 inches (59.2 mm)
4.90 inches (124.4 mm)
2.31 inches (58.6 mm)
4.87 inches (123.8 mm)
2.64 inches (67.1 mm)
5.44 inches (138.3 mm)
3.07 inches (77.9 mm)
6.23 inches (158.2 mm)
和 iPhone 5 的显示屏尺寸一致,4-inch
display(对角线长):
和 的显示屏尺寸一致,4.7-inch
display(对角线长):
iPhone 7 Plus 和 iPhone 6(s) Plus
的显示屏尺寸一致,5.5-inch
display(对角线长):
2.单位inch(英吋)
1 inch = 2.54cm = 25.4mm
3.iPhone手机宽高
上表中的宽高(width/height)为手机的物理尺寸,包括显示屏和边框。
以下为iPhone4s的宽高示意图:
4.屏幕尺寸
我们通常所说的iPhone5屏幕尺寸为4英寸、iPhone6屏幕尺寸为4.7英寸,指的是显示屏对角线的长度(diagonal)。
以下为iPhone5~6+的屏幕尺寸规格示意图:
5.像素密度PPI
PPI(Pixel Per Inch by diagonal):表示沿着对角线,每英寸所拥有的像素(Pixel)数目。
PPI数值越高,代表显示屏能够以越高的密度显示图像,即通常所说的分辨率越高、颗粒感越弱。
根据勾股定理,可以得知iPhone4(s)的PPI计算公式为:
计算结果稍有出入,这是因为像素的离散采样有锯齿效应。
6.缩放因子(scale factor between logic point and device pixel)
(1)Scale起源
早期的iPhone3GS的屏幕分辨率是320*480(PPI=163),iOS绘制图形(CGPoint/CGSize/CGRect)均以point为单位(measured in points):
1 point = 1 pixel(Point Per Inch=Pixel Per Inch=PPI)
后来在iPhone4中,同样大小(3.5 inch)的屏幕采用了,横、纵向方向像素密度都被放大到2倍,像素分辨率提高到(320x2)x(480x2)= 960x640(PPI=326), 显像分辨率提升至iPhone3GS的4倍(1个Point被渲染成1个2x2的像素矩阵)。
但是对于开发者来说,iOS绘制图形的API依然沿袭point(pt,注意区分印刷行业的“磅”)为单位。在同样的逻辑坐标系下(320x480):
1 point = scale*pixel(在iPhone4~6中,缩放因子scale=2;在iPhone6+中,缩放因子scale=3)。
可以理解为:
scale=绝对长度比(point/pixel)=单位长度内的数量比(pixel/point)
(2)UIScreen.scale
UIScreen.h中定义了该属性:
// The natural scale factor associated with the screen.(read-only)
@property(nonatomic,readonly) CGFloat scale
NS_AVAILABLE_IOS(4_0);
--------------------------------------------------------------------------------
This value reflects the scale factor needed to convert from the default logical coordinate space into the device
coordinate space of this screen.
The default logical coordinate space is measured using points. For standard-resolution displays,
the scale factor is 1.0 and one point equals one pixel. For Retina displays, the scale factor is 2.0 and one point is represented by four pixels.
--------------------------------------------------------------------------------
为了自动适应分辨率,系统会根据设备实际分辨率,自动给UIScreen.scale赋值,该属性对开发者只读。
(3)UIScreen.nativeScale
iOS8新增了nativeScale属性:
// Native scale factor of the physical screen
@property(nonatomic,readonly) CGFloat nativeScale NS_AVAILABLE_IOS(8_0);
以下是iPhone6+下的输出,初步看来:
--------------------------------------------------------------------------------
(lldb)p (CGFloat)[[UIScreen mainScreen] scale]
(CGFloat) $1 = 3
(lldb) p(CGFloat)[[UIScreen mainScreen] nativeScale]
(CGFloat) $2 = 3
--------------------------------------------------------------------------------
(4)机型判别
在同样的逻辑分辨率下,可以通过scale参数识别是iPhone3GS还是iPhone4(s)。以下基于nativeScale参数,定义了探测机型是否为iPhone6+的宏:
--------------------------------------------------------------------------------
// not UIUserInterfaceIdiomPad
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
// detect iPhone6 Plus based on its native scale
#define IS_IPHONE_6PLUS (IS_IPHONE && [[UIScreenmainScreen] nativeScale] == 3.0f)
--------------------------------------------------------------------------------
那么,同样的分辨率和scale,如何区分机型iPhone4与4s、iPhone5与5s呢?通过只能判别iPhone、iPad、iPod大类,要判断iPhone具体机型型号,则需要通过获取详细的设备参数信息予以甄别。
8./以及高倍图适配
@2x means the same “double”retina resolution that we’veseen on all iOS devices with retina
displays to date, where each virtual pointin the user interface is represented by two physical pixels on thedisplay in each dimension, horizontal and vertical.
iPhone3GS时代,我们为一个应用提供图标(或按钮提供贴图),只需要icon.png。针对现在的iPhone4~6 Retina显示屏,需要制作额外的@2x高分辨率版本。
例如在iPhone3GS中,scale=1,用的图标是50x50pixel(logicalimage.size=50x50point);在iPhone4~6中,scale=2,则需要100×100pixel(logical image.size=50x50point,乘以image.scale=dimensions in pixels),并且命名为icon@2x.png。
如果APP要同时兼容iPhone3GS~iPhone6,则需要提供icon.png/icon@2x.png两种分辨率的图片。
@3x means a new “triple” retina resolution, where eachuser interface point is represented
by three display pixels. A single @2x pointis a 2 × 2 square of 4 an @3x point is a 3 × 3 square of 9 pixels.”
iPhone6+在实际渲染时,downsampling/1.15(-&),准确的讲,应该是@2.46x。苹果为方便开发者用的是@3x的素材,然后再缩放到@2.46x上。
参考:《》《》《》
如果APP要同时兼容iPhone3GS~iPhone6+,则需要提供icon.png/icon@2x.png/icon@3x.png三种分辨率的图片。
需要注意的是,iOS APP图标的和都需要遵守相关规范。
(3)高倍图文件命名
对于iPhone3、4/5/6、6+三类机型,需要按分辨率提供相应的高倍图并且文件名添加相应后缀,否则会拉伸(stretchable/resizable)(模糊或边角出现锯齿)。
以下基于UIImage的两类初始化API简介高倍图的适配:
&1&+imageNamed:该方法使用系统缓存,适合表视图重复加载图像的情形。同时该API根据UIScreen的scale,自动查找包含对应高倍图后缀名(@2x)的文件,如果找到二倍图,则image.scale=2.0,对应逻辑size大小以point度量(pixel度量的一半);如果没找到设置默认image.scale=1.0,对应逻辑size大小同像素尺寸。因此,使用该方法,无需特意指定高倍图后缀。在实际运行时,系统如果发现当前设备是Retina屏(scale=2),会自动寻找"*@2x.png"命名格式的图片,加载针对Retina屏的图片素材,否则会失真。
&2&+imageWithContentsOfFile/+imageWithData:(scale:)/-initWithContentsOfFile:/-initWithData:(scale:)
这组方法创建的UIImage对象没有使用系统缓存,并且指定文件名必须包含明确的高倍图后缀。如果文件名包含@2x后缀,则image.scale=2.0;否则默认image.scale=1.0,同样对于Retina屏将会失真。
&3&目前,适配iPhone6+时,除了一些铺满全屏的大图(LogoIcon、LaunchImage)需提供三倍图,其他的小图仍可沿用原有的二倍图自适应拉伸。
9.Screen Bounds & Application Frame
(1)UIScreen.bounds
// Bounds of entire screen in points(本地坐标系,起点为[0,0])
@property(nonatomic,readonly) CGRect bounds;
--------------------------------------------------------------------------------
//考虑转屏的影响,按照实际屏幕方向(UIDeviceOrientation)的宽高
#define SCREEN_WIDTH ([UIScreenmainScreen].bounds.size.width)
#define SCREEN_HEIGHT ([UIScreenmainScreen].bounds.size.height)
#define STATUSBAR_HEIGHT ([UIApplicationsharedApplication].statusBarFrame.size.height)
//不考虑转屏的影响,只取竖屏(UIDeviceOrientationPortrait)的宽高
#define SCREEN_WIDTH MIN([UIScreenmainScreen].bounds.size.width,
[UIScreenmainScreen].bounds.size.height)
#define SCREEN_HEIGHT MAX([UIScreenmainScreen].bounds.size.height,
[UIScreenmainScreen].bounds.size.width)
#define STATUSBAR_HEIGHT MIN([UIApplicationsharedApplication].statusBarFrame.size.width,
[UIApplicationsharedApplication].statusBarFrame.size.height)
--------------------------------------------------------------------------------
(2)UIScreen.nativeBounds
iOS8新增了nativeBounds属性,输出竖屏像素级分辨率:
// The bounding rectangle of the physical screen,measured in pixels. (read-only)
// This rectangle is based on the device in a portrait-up orientation. This value does not change as the device rotates.
@property(nonatomic,readonly) CGRect nativeBounds NS_AVAILABLE_IOS(8_0);
以下是iPhone6+下的输出:
--------------------------------------------------------------------------------
(lldb) poNSStringFromCGRect([(UIScreen*)[UIScreen mainScreen] bounds])
{{0, 0}, {414, 736}}
(lldb) poNSStringFromCGRect([(UIScreen*)[UIScreen mainScreen] nativeBounds])
{{0, 0}, {}}
--------------------------------------------------------------------------------
(3)UIScreen.applicationFrame
// Frame of application screen area in points (i.e.entire screen minus status bar if visible)
// bounds除去系统状态栏
@property(nonatomic,readonly) CGRect applicationFrame;
--------------------------------------------------------------------------------
// APPFRAME_WIDTH=SCREEN_WIDTH
#define APPFRAME_WIDTH ([UIScreen
mainScreen].applicationFrame.size.width)
// APPFRAME_HEIGHT=SCREEN_HEIGHT-STATUSBAR_HEIGHT
//注意:横屏(UIDeviceOrientationLandscape)时,iOS8默认隐藏状态栏,此时APPFRAME_HEIGHT=SCREEN_HEIGHT
#define APPFRAME_HEIGHT ([UIScreen mainScreen].applicationFrame.size.height)
--------------------------------------------------------------------------------
(4)bounds和frame的区别
下图展示了:
10.机型尺寸(Screen
Scale Adaption)
从iPhone3GS/iPhone4(s)过渡到iPhone5(s)时,在逻辑上宽度不变高度稍高,之前旧的素材和布局通过简单适配即可运行得很好,但由于高宽比增大,上下两端出现黑粗边(典型如LaunchImage)。从分辨率的角度来看,除了需要提供LaunchImage这种满屏图,其他基本沿用二倍图(@2x);从屏幕尺寸角度来看,需要对纵向排版略加调整。
从iPhone5(s)发展到iPhone6(+),由于高宽比保持不变,iOS对图标、图片、字体进行等比放大自适应,清晰度会有所降低。同时,绝对坐标布局会导致在大屏下出现偏左偏上的问题。从分辨率的角度来看,iPhone6沿用二倍图(@2x),但需为iPhone6+提供更高的三倍图(@3x);从屏幕尺寸角度来看,需要重新对UI元素尺寸和布局进行适配,以期视觉协调。
(1)按宽度适配
我们先来看一下iPhone4~6(+)的屏幕高宽比:
iPhone4(s):分辨率960*640,高宽比1.5
iPhone5(s):分辨率,高宽比1.775
iPhone6:分辨率,高宽比1.779
iPhone6+:分辨率,高宽比1.778
可粗略认为iPhone5(s)、6(+)的高宽比是一致的(16:9),即可以等比例缩放。因此可以按宽度适配:
fitScreenWidth= width*(SCREEN_WIDTH/320)
这样,共有iPhone3/4/5、6、6+三组宽度,在iPhone6、6+下将按比例横向放大。
(2)按高度适配
在同样的宽度下,iPhone4(s)的屏高比iPhone5(s)低,若纵向排版紧张,可以iPhone5(s)为基准,按高度适配:
fitScreenHeight= height*(SCREEN_HEIGHT/568)
共有iPhone3/4、5、6、6+四组高度,在iPhone3/4下将按比例纵向缩小,在iPhone6、6+下将按比例纵向放大。
这里需要注意iPhone/iOS双环上网的热点栏对纵向布局的影响:iPhone作为个人热点且有连接时,系统状态栏下面会多一行热点连接提示栏"Personal
Hotspot: * Connection",纵向会下压20pt,[UIApplication sharedApplication].statusBarFrame高度变为40pt;当所有连接都断开时,热点栏消失,纵向高度恢复正常为20pt。详情可参考《》。
(3)按字体适配
另外,iPhone的【设置】【通用】【辅助功能】中可以设置调节【更大字体】,APP也可以按字号适配:
例如适配表视图(UITableView:UIScrollView),无法左右滑动,因此无论字号缩放比例多大,横向都不应超过SCREEN_WIDTH。注意限定控件元素内容区域宽度以及间距,并设置适当的LineBreakMode。表视图支持上下滑动,因此纵向上的表格行高和内容区域高度可按字号缩放。
对于纵向也不支持滑动的视图,在屏幕可见视区内排版时,最好不要随字号缩放,否则可能超出既定宽高。
11.UI相对布局
考虑到iPhone机型的多样性,不可能针对iPhone4(s)、5(s)、6、6+四种屏幕尺寸出四套视觉交互稿,也不要基于某一机型从上往下、从左往右给绝对标注,而应该关注subView在superView中的相对位置(EdgeInsets/Frame/Center)以及siblingView之间的偏移(Offset),尽量给出适合Autolayout的相对布局比例(理想情况是只给百分比)。假如交互按照iPhone5(s)下绝对标注,则在iPhone4(s)上可能挤出屏幕底部,而在iPhone6(+)上则可能横向偏左或纵向偏上。
开发人员基于与屏幕边缘的间距(Margin/EdgeInsets),定位边缘处的控件(钉钉子)作为参照,然后基于控件尺寸和间隙进行相对计算排版。这样,若钉子移动,相邻控件将顺向偏移,不会因为局部调整而出现凌乱。
我们截取 iPhone5s QQ 文件助手列表中的文件cell,使用 对其进行测量标注。
打开[截图.png]文件,由于不包含 Sketch 图元对象,无法进行 measure 标注(提示:请在画板中使用该功能)。因此,第一步需要对要相对标注的各个UI元素进行对象化。依次 Insert
Artboard 创建图层 frame、thumbnail、title、detail、source、button。
选中整个cell的frame(bounds),进行 Measure size:width=640px(SCREEN_WIDTH),height=168px。默认横向尺寸和纵向参考线都居中导致标注重叠,将纵向参考线右移至合适位置;也可选中WIDTH标注图层中的text和label元素,在不移动参考线的前提下,利用鼠标局部移动标注字面量。
(1)缩略图标
在左侧边栏layer list中选中frame,再command选中文件类型缩略图对象thumbnail,进行
Measure spacing,丈量缩略图左侧相对frame的间距为24px。选中文件类型缩略图对象thumbnail,进行 measure size,由于正方形等宽为112px*112px,故横纵标注重叠无影响。thumbnail在frame中纵向整体居中,因此上下边距计算均摊即可,无需再给定标注。
(2)传输按钮
对 button 和 frame 进行 Measure spacing,丈量按钮右侧相对frame的间距为24px。选中按钮button进行 measure size,其宽高为144px*60px。横纵标注重叠影响视觉,将纵向参考线右移至合适位置。button在frame中纵向整体居中,因此上下边距计算均摊即可,无需再给定标注。
(3)文件信息
对thumbnail和detail(title、source等宽且左对齐)进行
Measure spacing,丈量图标右侧相对detail的间距为20px;对button和detail进行 Measure spacing,丈量按钮左侧相对detail间距为20px。这样,左侧钉住thumbnail,右侧钉住button,中间信息部分的宽度无需给定,计算被动约束的横向余量即可。具体编程时,调用 sizeWithFont/boundingRectWithSize
可动态计算每行 label 的自然宽度,一般title都会超过约束宽度,因此需设置 lineBreakMode指定Wrapping省略或Truncating截断格式。选中文件信息第1行标题title和第2行详情detail,进行 Measure spacing,测量纵向相对间距10px;第2行详情detail和第3行来源的纵向相对间距也为10px。一般
UILabel 的文本在给定字体下的纵向自然显示无约束,调用 sizeWithFont/boundingRectWithSize 可动态计算每行 label 的自然高度,title的上间距和source的底间距无需给定,通过计算纵向余量均摊即可。
可简单的基于屏宽横纵比例进行scale缩放,将以上测量出的标注应用到iPhone6(+)大屏下,当然交互设计工程师最好还是针对特定机型都给定适配标注。苹果在WWDC2012
iOS6中已提出了的概念,即使用约束条件来定义视图的位置和尺寸,以适应不同尺寸和分辨率的屏幕。
12.DEPRECATED API适配
最后,除了对屏幕尺寸和分辨率进行适配之外,还需对iOS SDK中相关的DEPRECATED API进行适配。典型的如:
(1)UILineBreakMode-&NSLineBreakMode
(2)UITextAlignment-&NSTextAlignment
(3)sizeWithFont:-&boundingRectWithSize:
(4)stretchableImageWithLeftCapWidth:topCapHeight:-&resizableImageWithCapInsets:
《》《》《》《》《》《》《》《》《iOS界面适配()()()》《》《》《》《》《》
没有更多推荐了,

我要回帖

更多关于 苹果手机屏幕大小像素 的文章

 

随机推荐