????因?yàn)閕PhoneX的產(chǎn)生,原本的導(dǎo)航欄再也不是44了郊楣,那么會(huì)出現(xiàn)什么問題呢憔恳?在隱藏導(dǎo)航欄的頁面,原本的高度要向上調(diào)整一個(gè)導(dǎo)航欄+狀態(tài)欄的高度净蚤。那么iPhoneX的導(dǎo)航欄高度不是44了钥组,我們需要手動(dòng)獲取,
有導(dǎo)航欄的今瀑,代碼如下:
//獲取狀態(tài)欄的rect
? ??CGRect statusRect = [[UIApplication?sharedApplication]?statusBarFrame];
? ?//獲取導(dǎo)航欄的rect
?? ?CGRect?navRect =?self.navigationController.navigationBar.frame;
那么導(dǎo)航欄+狀態(tài)欄的高度
statusRect.size.height+navRect.size.height
是不是很簡(jiǎn)單3堂巍G簧ァ!作烟!
對(duì)于項(xiàng)目有的很多處都需要這個(gè)代碼愉粤,可以給它寫成宏定義。如下
方法一:
//獲取導(dǎo)航欄+狀態(tài)欄的高度
#define getRectNavAndStatusHight? self.navigationController.navigationBar.frame.size.height+[[UIApplication sharedApplication] statusBarFrame].size.height
方法二:(用了宏定義的 參數(shù)返回)
//獲取導(dǎo)航欄+狀態(tài)欄的高度
#define getRectNavAndStatusHight \
({\
CGRect rectStatus = [[UIApplication sharedApplication] statusBarFrame];\? ? CGRect rectNav = self.navigationController.navigationBar.frame;\
( rectStatus.size.height+ rectNav.size.height);\
})\
下面說說沒有導(dǎo)航欄(對(duì)于模態(tài)視圖推出):
#define isPhoneX?([UIScreen?instancesRespondToSelector:@selector(currentMode)]???CGSizeEqualToSize(CGSizeMake(1125,?2436),?[[UIScreen?mainScreen]?currentMode].size)?:?NO)?
首先判斷機(jī)型是不是iPhoneX拿撩,然后
如果是iPhoneX返回88 如果不是64
需要的人可以直接copy走吧衣厘!(如果不好用 ,把中間換行去點(diǎn)压恒,這個(gè)自己給我加上的)記得幫我點(diǎn)點(diǎn)? 愛你喲