iphone機型分辨率

1啓動圖的適配
如果用的是LaunchScreen.storyboard就不需要考慮,如果是LaunchImage啓動圖那麼需要準備正確的啓動圖,注意XR使用的@2x的圖

機型 啓動圖及分辨率
4s 320x480 @2x
5,5s,se 320x568 @2x
6,6s,7,8 375x667 @2x
6,6s,7,8(plus) 414x736 @3x
x,xs 375x812 @3x
xs max 414x896 @3x
xr 414x896 @2x
11 414x896 @2x
11 Pro 375x812 @3x
11 Pro Max 414x896 @3x

備註:Xcode10,模擬器運行發現xr的寬是375高是812(是因爲當時沒有添加xr的啓動圖照成添加以後414x896)
2屏幕的適配
分2種思路 第一種是根據屏幕適配 還有一種根據設備來判斷
根據屏幕
1).我們可以根據原定機型的寬高係數來適配比如公司的模型機型是6那麼適配如下
Iphone6ScaleWidth = [UIScreen mainScreen].bounds.size.width/375; Iphone6ScaleHeight = [UIScreen mainScreen].bounds.size.height/667;
然後控件的寬高乘以原模型的寬高係數這樣也是可行的
2).根據寬或者高來確認機型來適配
這種做法比較麻煩需要坐判斷
3)根據寬高比來適配
劉海的2:1。其他的1.7:1
根據設備來適配

**//判斷是否是ipad
#define isPad ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
//判斷iPhone4系列
#define kiPhone4 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判斷iPhone5系列
#define kiPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判斷iPhone6系列
#define kiPhone6 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(750, 1334), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判斷iphone6+系列
#define kiPhone6Plus ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2208), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判斷iPhoneX
#define IS_IPHONE_X ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判斷iPHoneXr
#define IS_IPHONE_Xr ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(828, 1792), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判斷iPhoneXs
#define IS_IPHONE_Xs ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判斷iPhoneXs Max
#define IS_IPHONE_Xs_Max ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2688), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)


適配x系列
適配x系列主要是對頂部導航欄+狀態欄 和底部的距離適配 x系列的狀態欄是44其他的是20
底部的其他爲0 x系列底部要預留25像素
那麼我們根據設備判斷是否是x系列然後做相應操作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章