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

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

停,🤚。佈局

若是app 適配過 iPhone X、新機子不用怎麼適配的了。spa

若是你以前的適配、都是寫死的。設計

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

先看看新手機嘛 blog

 

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

適配劉海屏便可啦io

如何適配劉海屏?

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

1、StatusBar

iPhone X 上的 StatusBar 高度比以前的 iPhone 高一些,也就是說,咱們若是寫死20pt高度的 frame 佈局,都要大面積修(tu)改(xue)。在 iPhone X 上,經過打印 [[UIApplication sharedApplication] statusBarFrame] 能夠看到,高度是44pt。float

"若是你的 App 是隱藏 StatusBar 的,建議從新考慮。iPhone X 爲用戶在垂直空間上提供了更多展現餘地,且狀態欄中也包含了用戶須要知道的信息,除非能經過隱藏狀態欄帶給用戶額外的價值,不然蘋果建議你們將狀態欄還給用戶。"

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

2、屏幕底部

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

 

 

 

 

 

 

 

 

iPhone X 的 Home Indicator 區域

「若是你的底部是 TabBar,那麼 Home Indicator 背景會來自於 TabBar 背景的延伸,若是咱們是一個 feed 流的頁面,那麼底部會展現 feed 流的局部。」

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

 

3、適配進行

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

4、使用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
相關文章
相關標籤/搜索