關于 iPhone X 的適配問題

最近蘋果發布了 iOS 11 也發布了 iPhone 8 ,iPhone 8 Plus,iPhone X ,8和8 Plus 只是 7的升級版,對于廣大的開發者而言 ,沒有什么需要注意的, 主要的 iPhone X 給我們帶來了麻煩, 最主要的導航欄的變化,給我們帶來了麻煩.
第一點: 就是升級了iOS7之前的 創建的 xib 都不能用了, 都需要重寫

WechatIMG24.jpeg

第二點 :也是最主要的變化 導航欄和工具欄的變化,之前的項目直接拿到 Xcode 9 上面來跑起來就會出現這樣的效果, (我的這個是自定義的導航欄 就是一個 View)

2685CEEA-733D-49F0-8DE8-77F95C7D4A2B.png

顯然是不對的. 如果你的導航欄是系統的會出現這種

Simulator Screen Shot - iPhone X - 2017-09-21 at 11.35.24.png

那么我們應該怎么辦呢

解決辦法

第一步, 我們應該想到的是, 不同屏幕的尺寸, 是需要不同尺寸的啟動圖的那么我們就應該在 <<LaunchImage>>里面加上 iPhone X 對應尺寸的啟動圖 大小為
1125*2436 如圖


64CF4675-7639-41C9-A5B0-303AC5B8F859.png

加上過后 就會正常了 其實也不太正常

97C6C905-7FC9-4F5B-BD06-81D99244FCE0.png

自定義的導航欄 的 Title 會離上面太擠了,之前的手機導航欄都是64, iPhone X 上的導航欄 就84 了 所以就會太擠了,那么處理方法就是要判斷下當前的 設備是什么設備 如果是iPhone X 就需要多加20. 那么對應的下面的空間也要向下移動20,每個頁面都需要這么做, 真的很煩哦.

如果你是用的系統導航欄 就不需要設置了, 直接距離上面0就可以了!
改完之后的效果

Simulator Screen Shot - iPhone X - 2017-09-21 at 12.02.01.png

關于怎么判斷否是iPhone X 呢目前我的方法是
[UIScreen mainScreen].bounds.size.height >736 為 X. 即

-(NSInteger)topHeight{
    return ScreenHeight > 736 ? 84 : 64;
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容