最近剛把公司項目都適配的iPhone X,適配完感覺總結下筆記好,所以寫篇文章總結一下我適配過程的方法和地方.
1. iPhone X上下位置增加高度
iPhone X在原機型的基礎上,上面的導航欄增加 24, 下面tabbar增加 34, 也就是iPhone X的導航欄現在高度是 64+24 = 88, tabbar高度是 49+34 = 83.
2.extension 判斷機型是iPhone X
這里我extension了 UIDevice,通過判斷屏幕高度來判斷當前設備是否是iphoneX.
extension UIDevice {
? ? publicfuncisX() ->Bool{
? ? ? ? if UIScreen.main.bounds.height == 812 {
? ? ? ? ? ? returntrue
? ? ? ? }
? ? ? ? return false
? ? }
}
3.宏定義導航欄和tabbar高度
let kNavigationBarHei:CGFloat = 64.0 + (UIDevice.current.isX() == true ? 24.0 : 0)
let kBottomBarHei:CGFloat = 49.0 + (UIDevice.current.isX() == true ? 34.0 : 0)
項目中頁面或控件相對父視圖的約束值直接用這個宏即可
4.底部控件修改避免影響交互
比如像上面圖所示,之前約束距底部就編程這樣,在點擊底部area區域是,可能會對按鈕交互有影響,這種情況有幾種解決方法,
1:控件上移,但這時候area區域會空出來,這時候如果頁面是全屏內容的話,就比較麻煩了,還需要把area區域顏色修改或者自己創建view覆蓋上去,這樣比較麻煩,不推薦.
2.簡單方法可以直接把控件高度增加,這樣就可以把顯示的內容和交互整體上移.