關於iPhone裝置不同顯示尺寸適配的一些方法
關於iPhone裝置不同顯示尺寸適配的一些方法
——關於適配的理解——
1、什麼是適配?
適配是對不同硬體和系統軟體的適應,硬體包括螢幕顯示,處理器,記憶體等等(目前主要是螢幕適配,iPhone 6s新增了3D Touch功能,其他硬體功能並沒有實質性的改變),軟體主要是不同iOS系統(有些在最新系統(通常會盡量向下相容)不再支援的方法都需要做一些判斷)。
2、為什麼要適配?
適配是為了相容不同的裝置。
3、螢幕適配主要有哪些方式?
(1)等比例適配(所有檢視按螢幕大小縮放,相對位置不變):a、純程式碼;b、程式碼+storyboard(不使用自動佈局);c、程式碼+storyboard(使用自動佈局)。
(2)自由適配(主要使用自動佈局):由於同一佈局在不同大小的螢幕上顯示效果不一樣,如果僅僅是等比縮放,有時顯示效果差強人意;在顯示內容尺寸符合操作習慣(這個看自己咋想)的情況下,螢幕大小最大的區別是屏大顯示內容多(如瀏覽新聞等,除了只有一些固定圖片、控制元件等的簡潔介面),a、約束內容的間距及相對大小;b、約束內容的寬高及相對位置;c、約束內容的間距、寬高。
——適配的一些方法——
情況一
(等比適配,程式碼+storyboard,不使用自動佈局,建議用iPhone6的尺寸佈局),通過獲取螢幕尺寸,重定義CGRectMake,更新所有檢視及其子檢視的frame,完成等比適配。注意字型、圖片,以及tableView、collectionView。
1、——————AppDelegate.h新增:
+ (void)ergodicView:(UIView *)view;
2、——————AppDelegate.m新增:
#define ScreenHeight [UIScreen mainScreen].bounds.size.height
#define ScreenWidth [UIScreen mainScreen].bounds.size.width
#define ScreenScaleX (ScreenWidth/375)//相對於蘋果6螢幕
#define ScreenScaleY (ScreenHeight/667)
//按螢幕自動適配storyBoard所有檢視
+ (void)ergodicView:(UIView *)view{
if (view.subviews.count != 0) {
for (UIView *temp in view.subviews) {
temp.frame = CGRectMake1(temp.frame.origin.x, temp.frame.origin.y, temp.frame.size.width, temp.frame.size.height);
[self ergodicView:temp];
}
}
}
//修改CGRectMake
CG_INLINE CGRect
CGRectMake1(CGFloat x, CGFloat y, CGFloat width, CGFloat height)
{
CGRect rect;
rect.origin.x = x * ScreenScaleX;
rect.origin.y = y * ScreenScaleY;
rect.size.width = width * ScreenScaleX;
rect.size.height = height * ScreenScaleY;
return rect;
}
——————–
情況二
使用autolayout佈局後,可重新設定檢視的frame。等viewDidLoad載入完後,再延遲改變檢視的frame,不延遲會被storyboard重新設定。也可以在viewDidLayoutSubviews或viewDidAppear重新設定frame
相關文章
- 關於圖片適配不同尺寸的image View(實戰)View
- iOS 關於全面屏適配的方案及UI在不同尺寸下適配方案iOSUI
- 裝置適配
- Unity適配iPhone X---關於Home鍵指示器適配UnityiPhone
- [譯] Flutter —— 根據不同螢幕尺寸高效的適配 UIFlutterUI
- flutter 螢幕尺寸適配 字型大小適配Flutter
- 科學計算教你顯示器尺寸怎麼選 顯示器多大尺寸合適?
- 關於字型適配
- 適配iPhone XR/iPhone XS MaxiPhone
- NVIDIA顯示卡(N卡)適配Free-sync顯示器開啟G-sync的方法教程
- iphone 連線win10電腦不顯示便攜裝置的最佳解決方法iPhoneWin10
- 設定顯示裝置
- Android 裝置音影片相容性適配Android
- 谷歌將正式推出 Fuchsia OS,已有適配裝置谷歌
- 前端iPhone X適配總結前端iPhone
- cocos creator中適配iPhone XiPhone
- Flutter適配安卓劉海、水滴屏顯示全屏Flutter安卓
- Android圖示適配Android
- 關於 Android 狀態列的適配總結Android
- web自適應尺寸方法Web
- 實踐 | 為 Trackr app 適配大螢幕裝置APP
- SAP UI5 應用基於裝置型別的頁面適配功能(Device Adaptation)UI型別devAPT
- 【IDL】同時顯示不同解析度影像的方法
- lsusb命令-在系統中顯示有關USB裝置資訊
- 適配可摺疊裝置,您的應用準備好了嗎?
- 是時候為各式裝置適配完善的輸入支援了
- 關於SSL裝置的詳解
- 調查顯示2022年聖誕清單非iPhone蘋果裝置出鏡率最高iPhone蘋果
- win10裝置管理器中不顯示藍芽的解決方法Win10藍芽
- 關於移動端適配,你必須要知道的
- 適合搭配RT-2990WX的顯示卡推薦 AMD 2990WX配什麼顯示卡好?
- 適合R5-2600搭配的顯示卡推薦 R5 2600配什麼顯示卡好?
- 適合搭配i3-8100的顯示卡推薦 i3 8100配什麼顯示卡好?
- win10未安裝音訊裝置怎麼辦_win10顯示未安裝音訊裝置的解決方法Win10音訊
- 如何在邊緣裝置上適配大型神經網路?神經網路
- win10 itunes隱藏裝置後怎麼顯示_win10 itunes隱藏裝置後如何顯示Win10
- 關於裝置畫素比
- Apple裝置螢幕尺寸和方向APP
- 微信小程式適配 iPhone X 總結微信小程式iPhone