今年因?yàn)?蘋(píng)果因?yàn)閕PhoneX 的發(fā)布,給我們開(kāi)發(fā)人員帶來(lái)了, 很多的難題哦, 沒(méi)法辦. iOS 11 也出來(lái)幾個(gè)月了 因?yàn)?iPhoneX 的沒(méi)有人能購(gòu)買的原因我也一直沒(méi)有適配,但是現(xiàn)在 iPhoneX 現(xiàn)在能買了,就必須適配了.
1,在關(guān)于啟動(dòng)圖的我在前面的一篇文章已經(jīng)說(shuō)得很詳細(xì)了, 這里就不多說(shuō)了.
2關(guān)于自定義導(dǎo)航欄對(duì)于 iphoneX 的適配, (系統(tǒng)的沒(méi)啥影響,我以后也決定用系統(tǒng)的了),之前我們肯定是64.0f的高度,現(xiàn)在在 iPhoneX 上變成了88.0f 工具欄也由49.0f變成了83.of 所以我們之前的宏定義,是這樣的
//導(dǎo)航欄高度
#define NavHeight 64.0f
// Tabbar 高度
#define TabbarHeight 49.0f
那么現(xiàn)在肯定是要改的我就改成了
//導(dǎo)航欄高度
#define NavHeight ScreenHeight == 812.0 ? 88.0f : 64.0f
// Tabbar 高度
#define TabbarHeight ScreenHeight == 812.0 ? 83.0f : 49.0f
如果是這樣的話, 那么在界面就會(huì)出現(xiàn)以前這種情況

這個(gè)問(wèn)題困擾了我半天, 覺(jué)得3目運(yùn)算符 沒(méi)問(wèn)題呀 .
之后我在后面加了一個(gè)括號(hào)就沒(méi)問(wèn)題了
#define NavHeight (ScreenHeight == 812.0 ? 88.0f : 64.0f)
// Tabbar 高度
#define TabbarHeight (ScreenHeight == 812.0 ? 83.0f : 49.0f)

2 相應(yīng)的,如果你是用的 Xib 或者 SB 拖過(guò)來(lái)的控件, 之前是里上面64的約束,(我這里依然是指導(dǎo)航欄為自定義的)那么久應(yīng)該在程序中修改一下
(1)

(2) 在程序中設(shè)置下離上面的距離
self.navHeightCons.constant = NavHeight;
這樣一來(lái)就沒(méi)問(wèn)題了.
3.關(guān)于 tableView 在 iOS 11 中的問(wèn)題 UITableViewStyleGrouped這種情況下的cell之間的間隔會(huì)無(wú)故拉大如下:

可能你會(huì)說(shuō)沒(méi)有設(shè)置頭視圖與尾視圖的高度我是設(shè)置了的

我之后在加上下面的代碼就好了 在你使用 MJRefresh刷新的時(shí)候 還會(huì)出現(xiàn)一直刷新(一直請(qǐng)求接口) 添加下面也可一并解決
_tableView.estimatedRowHeight = 0;
_tableView.estimatedSectionHeaderHeight = 0;
_tableView.estimatedSectionFooterHeight = 0;

以上就是我遇到的問(wèn)題. 謝謝.