屏幕適配、系統適配基礎介紹

開始接觸屏幕適配,寫得比較粗糙,記錄學習過程。
在任務過程中,功能完成,UI細節調整好,API完成對接之後,發現任務中有 “多屏幕(機型)適配”和“多系統適配”需求。
多屏幕適配
iPhone 5s 、SE 4寸
iPhone 6 、6S、7 4.7寸
iPhone 6 Plus 、6S Plus、7 Plus 5.5寸

多系統適配
iOS 8.0 以上

多屏幕適配
設置宏文件
1.獲取物理屏幕尺寸,判斷設備類型
#define IPhone4_4s SCREEN_WIDTH == 320.0f && SCREEN_HEIGHT == 480.0f && SCALE == 1
#define iPhone5_5s SCREEN_WIDTH == 320.0f && SCREEN_HEIGHT == 568.0f && SCALE == 2
#define iPhone5SE SCREEN_WIDTH == 320.0f && SCREEN_HEIGHT == 568.0f && SCALE == 2
#define iPhone6_6s_7 SCREEN_WIDTH == 375.0f && SCREEN_HEIGHT == 667.0f && SCALE == 2
#define iPhone6Plus_6sPlus_7Plus SCREEN_WIDTH == 414.0f && SCREEN_HEIGHT == 736.0f && SCALE == 3

#define kScreenHeightiPhone4_4s 480.0f
#define kScreenHeightiPhone5_5s 568.0f
#define kScreenHeightiPhone6_6s 667.0f
#define kScreenHeightiPhone6Plus_6sPlus 736.0f
#define kScreenHeightiPhone7 667.0f
#define kScreenHeightiPhone7Plus 736.0f

#define kScreenWidthiPhone4_4s 320.0f
#define kScreenWidthiPhone5_5s 320.0f
#define kScreenWidthiPhone6_6s 375.0f
#define kScreenWidthiPhone6Plus_6sPlus 414.0f
#define kScreenWidthiPhone7 375.0f
#define kScreenWidthiPhone7Plus 414.0f
#define GETOFFSET(O) [ScreenFitUtil fixOffset:O]

2.創建ScreenFitUtil文件,聲明實現方法:[ScreenFitUtil fixOffset:O]
文字大小,約束設置的數值 都通過 宏指令 進行調整
例如:CGFloat height = GETOFFSET(20);
+ (CGFloat)fixOffset:(CGFloat)offset {
return [ScreenFitUtil getLength:offset];
}
+ (CGFloat)getLength:(CGFloat)length {
if (IPhone4_4s) {
return length * 0.85;
} else if (iPhone5SE) {
return length * 0.85;
} else if (iPhone5_5s) {
return length * 0.85;
} else if (iPhone6_6s_7) {
return length;
} else if (iPhone6Plus_6sPlus_7Plus) {
return length * 1.1;
}
return length;
}
3.CGFloat height = GETOFFSET(20);
返回得到的值的大小,就根據屏幕尺寸進行調整。
如果 爲iPhone 4_4s 值 = 20 * 0.85 = 17
如果 爲iPhone 5_SE 值 = 20 * 0.85 = 17
如果 爲iPhone 6_6s_7 值 = 20 * 1 = 20
如果 爲iPhone6Plus_6sPlus_7Plus 值 = 20 *1.1 =22

注意事項:並不是所有的值都要調整大小,需要根據具體情況分析。


多系統適配
第一步:1.修改 iOS Deployment Target 改爲最低所需適配系統版本號 ex: iOS Deployment Target 8.0
第二步:2.添加所需模擬器。
需求
完成8.x以上的系統適配

點擊 模擬器列表 跟換所需 調試的模擬器


如果沒有所需的模擬器 :例如沒有8.x的系統
點擊 Add Additional Simulators 添加所需的模擬器系統,如果還沒有所需的系統,點擊 Download more simulator.... 下載更多的系統模擬器

添加完成後,運行調試代碼即可。

本人在添加過程中,遇到一個問題,
發現列表中明明添加了 8.x的 系統模擬器,但是選擇的時候 只有9.x 和10.x的模擬器,無法選中8.x的模擬器。
解決辦法:
1.xcrun simctl delete unavailable 命令行作用:移除xcode無用的模擬器,清除 不用的 模擬器緩存目錄
2.選擇target,在development Info 中 ,修改Development Target 改爲8.0

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