標籤:
大家都知道在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乘以(你自己給定的高度或者寬度),通過這樣就能很好的適配了。自己的一點愚見,希望大家能再開發中能夠很好的利用。
關於iOS適配問題