标签:
大家都知道在iOS开发当中对于UI适配问题可以从如下两个方面去考虑:
1.比例适配
2.利用autolayout自动布局
通常情况来说,利用auto自动布局是一个比较好的方案,开发者可以利用storyboard添加约束,以及sizeclass完美适配,如果你是比较喜欢纯代码的方式的话,那么PureLayout 以及Masonary也是不错的自动布局第三方库(目前项目当中也正在用PureLayout)。但是,相信有不少人会有过这样的困惑,随着控件的约束太多,而导致约束冲突,然而对于自己来说看上去也很烦。我们在刚接触iOS开发的时候应该都是从frame来开始学习布局的,所以从frame的角度去布局的话我们也会很好的去理解。
这里主要探讨一下利用frame在项目中适配iOS屏幕吧!首先我们获取屏幕的宽,高!
#define RRScreenWidth [UIScreen mainScreen].bounds.size.width
#define RRScreenHeight [UIScreen mainScreen].bounds.size.height
那么问题来了,iOS设备的尺寸如下
设备 iPhone |
宽 Width |
高 Height |
对角线 Diagonal |
逻辑分辨率(point) |
Scale Factor |
设备分辨率(pixel) |
PPI |
3GS |
2.4 inches (62.1 mm) |
4.5 inches (115.5 mm) |
3.5-inch
|
320x480 |
@1x |
320x480 |
163 |
4(s) |
2.31 inches (58.6 mm) |
4.5 inches (115.2 mm) |
3.5-inch |
320x480 |
@2x |
640x960 |
326 |
5c |
2.33 inches (59.2 mm) |
4.90 inches (124.4 mm) |
4-inch |
320x568 |
@2x |
640x1136 |
326 |
5(s) |
2.31 inches (58.6 mm) |
4.87 inches (123.8 mm) |
4-inch |
320x568 |
@2x |
640x1136 |
326 |
6 |
2.64 inches (67.0 mm) |
5.44 inches (138.1 mm) |
4.7-inch |
375x667 |
@2x |
750x1334 |
326 |
6+ |
3.06 inches (77.8 mm) |
6.22 inches (158.1 mm) |
5.5-inch |
414x736 |
@3x |
(1242x2208->) 1080x1920 |
401
|
从宽的角度来说,4s、5、5s为320,6、6s为375,6+为414
从高的角度来说,4s为480,5、5s为568,6、6s为667,6+为736
如果利用宽来进行适配的话那么5和4s会有一点点差异,如果看5和6,我们通常为选择 让 RRScreenWidth/640或者RRScreenWidth/960,这样的话根据微妙的计算来控制其实是可以的,但是在4s上效果其实并不好。
所以我采用了利用屏幕高度进行适配,用RRScreenHeight/1280乘以(你自己给定的高度或者宽度),通过这样就能很好的适配了。自己的一点愚见,希望大家能再开发中能够很好的利用。
标签:
原文地址:http://www.cnblogs.com/chenqitao/p/4871325.html