分辨率和像素
经新xcode6模拟器验证(分辨率为pt,像素为真实pixel):
1.iPhone5分辨率320x568。像素640x1136,@2x
2.iPhone6分辨率375x667,像素750x1334,@2x
3.iPhone6 Plus分辨率414x736,像素1242x2208。@3x,(注意,在这个分辨率下渲染后,图像等比减少pixel分辨率至1080p(1080x1920)
适配方法1:代码中推断当前设备的尺寸,对UI元素进行手工的调整,其缺点是显而易见的:代码复杂、easy出错、且维护难度大、灵活性极差;
适配方法2:通过设置可视单元(UIView UIButton...)的autoresizing属性,预设当该view所在的环境(父view)发生变化时它的尺寸和位置应该怎样调整,该方法能够在Xcode的interface builder中(storyboard 或者 xib)设置完毕,但其仅仅能针对父子关系进行有限的调整,比方左边距是否固定,尺寸是否可变等,而对于兄弟关系的调整则无法实现,对于UI比較固定的APP这样的调节方式也算基本满足需求。
适配方法3:结合使用autolayout和sizeclass对UI可视单元的父子关系、兄弟关系进行全方位的调整,并且调节精度更高:不仅能确定一个view的位置尺寸的变化根据是什么。还能对这些根据加以不同的优先级。先满足什么条件,再满足什么条件,对于重要的位置尺寸能够优先保证。这样整个APP就具有极强的动态可调性,满足不同设备、不同应用场景下的需求。