标签:
对于不同苹果设备,各个参数查看《iOS:机型参数、sdk、xcode各版本》。
坐标:表示屏幕物理尺寸大小,坐标变大了,表示机器屏幕尺寸变大了;
像素:表示屏幕图片的大小,跟坐标之间有个对应关系,比如1:1或1:2等;
ppi:代表屏幕物理大小到图片大小的比例值,如果ppi不变,则坐标和像素的比例不会变;
引用一段文字说的很好:
“不是现有的屏幕物理分辨率明显超过了 @2x 但还达不到 @3x 的水平么?那我们歪歪一个满足 @3x 的屏幕总可以吧?
对的,歪歪。
程序在 iPhone 6 Plus 上运行的时候,iOS 会骗它说,你运行在一个超大的 @3x Retina
显示屏上,物理分辨率高达 1242 x 2208,逻辑分辨率是 414 x 736,两者都比 iPhone 6
要大。然后作为设计师和开发人员,也跟着一起歪歪。设计师画图的时候要把屏幕当成 1242 x 2208 来画图(而且要提供@3x 的高清图),开发人员也按照 414 x 736 的逻辑分辨率来写程序。
但借来的总要还的。等咱们歪歪结束了以后,iOS 拿到这个假大的 UI 绘制结果,实时地再缩小到实际的 1080 x 1920 分辨率(系统通过某种算法)。于是,用户在 iPhone 6 Plus 的屏幕上看到的永远是被缩小了的图像:
这么做使得设计和开发的过程大大简化,且最后的实际缩放系数 @2.62x 非常接近理想的 @2.46x,使得同样的素材在真机上看起来尺寸也非常合理。
尺寸适配:
代码中的尺寸不要使用480、460这样的绝对数值,使用的UIScreen取设备的尺寸。
在某机型上,如果是自动适配,比如iPhone 5,老版程序就会在屏幕上、下俩端多出俩块黑条;比如iPhone6/6plus,老版程序就会自动等比拉伸。那如何关闭自动适配?
指定启动图(例如iPhone 5为Default-568h@2x.png)或者使用Launch Screen File.xib,即程序使用手动适配,不会做拉伸等,但是程序内部必须已做处理,否则使用自动适配方案。
下面将讲解一下系统适配:从ios5开始,
IOS7以后和之前
1
2
|
<span style= "font-size:18px;background-color: rgb(255, 255, 255);" >#define IOSVersion [[[UIDevice currentDevice] systemVersion] floatValue] #define IsiOS7Later !(IOSVersion < 7.0 )</span> |
系统需要适配有以下几个点:
1.(StatusBar)StatusBarHeight 的高度 ios7以后 StatusBar是悬浮在屏幕上方的 所以ios7之后控件布局需要加上20 而在ios7之前不需要
2. label的文本自适应需要适配
3.(ios8适配)UIAlertController UIAlertAction —ios8 代替了 UIAlertView
4. (ios8适配)ios8新增定位判断,info.plist文件设置两个属性 用到定位需要适配
(后续更新)
iOS:界面适配(三)--iPhone不同机型或设备不同尺寸适配(屏幕适配)和系统适配
标签:
原文地址:http://www.cnblogs.com/linxiu-0925/p/5412016.html