iOS屏幕適配 支持新手機 iPhone XR iPhone XS 超簡單


隨着蘋果爸爸發布了 超牛叉的iPhone iPhone X 、iPhone XR、iPhone XS 、iPhone XS Max、開發者的適配工作要開始了。

停,🤚。

如果app 適配過 iPhone X、新機子不用怎么適配的了。

如果你之前的適配、都是寫死的。

建議你寫活吧。萬一,蘋果爸爸發布全面屏的iPhone呢?

先看看新手機嘛 

 

新手機和 iPhone X相同、都是劉海屏、

適配劉海屏即可啦

如何適配劉海屏?

下圖是 iPhone X 對比其他機型的變化部分。iPhone X 和 iPhone 8 的寬度一致,在垂直方向上多了145pt,這就意味着首頁可以展示更多的內容,多出來的這20%的垂直空間,也許可以掛上更高價值的運營位。

一、StatusBar

iPhone X 上的 StatusBar 高度比之前的 iPhone 高一些,也就是說,我們如果寫死20pt高度的 frame 布局,都要大面積修(tu)改(xue)。在 iPhone X 上,通過打印 [[UIApplication sharedApplication] statusBarFrame] 可以看到,高度是44pt。

"如果你的 App 是隱藏 StatusBar 的,建議重新考慮。iPhone X 為用戶在垂直空間上提供了更多展示余地,且狀態欄中也包含了用戶需要知道的信息,除非能通過隱藏狀態欄帶給用戶額外的價值,否則蘋果建議大家將狀態欄還給用戶。"

另外還有一點,用戶在使用 iPhone X 打電話的時候,StatusBar 的高度也不會發生變化了。

二、屏幕底部

因為沒有了 Home 鍵,iPhone X 的底部是預留給系統功能的一個區域 - Home Indicator,這部分的高度是34pt。

 

 

 

 

 

 

 

 

iPhone X 的 Home Indicator 區域

“如果你的底部是 TabBar,那么 Home Indicator 背景會來自於 TabBar 背景的延伸,如果我們是一個 feed 流的頁面,那么底部會展示 feed 流的局部。”

意思是如果有 TabBar,那么那個區域會延展你的 barTintColor;沒有的話,就顯示透明的(參照 Setting)。之所以這么設計,是為了讓 indicator 清晰可見,告訴用戶你可以滑動這部分區域。所以蘋果不建議我們的 UI 元素過於靠近這部分區域。

 

三、適配進行

將原來的替換、審查每個界面、減去新增的高度

四、使用safeAreaInsets

現在沒有用到safeAreaInsets來進行適配,是應為在IB界面里,safeAreaInsets支持的最低版本為iOS 9.0,

我們還需要兼容之前的版本。所以這里沒有介紹這種方法。

 

至此、屏幕簡單適配結束啦。

有什么不恰當的地方,歡迎指正。

 

 

附上上述代碼

#define kStatusBarHeight [[UIApplication sharedApplication] statusBarFrame].size.height

#define kNavBarHeight 44.0

#define kTopHeight (kStatusBarHeight + kNavBarHeight)

#define kTabBarHeight ([[UIApplication sharedApplication] statusBarFrame].size.height>20.1?83.0:49.0)

#define kTabBarArcHeight ([[UIApplication sharedApplication] statusBarFrame].size.height>20.1?34.0:0.0)

//替換 64px →kTopHeight

//替換 49px →kTabBarHeight

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM