最近蘋果發布了 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;
}