目前還不知道iPhone X的Devive Model看蚜,可以拿分辨率來(lái)判斷赔桌。
#define iPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)
適配iPhone X如火如荼啊。天狐發(fā)現(xiàn)很多地方需要代碼判斷iPhone X機(jī)型疾党。
舉個(gè)例子。
原生的tabbar高度為49pt.當(dāng)iPhone X時(shí)候自動(dòng)變?yōu)榱?3pt竭钝,自動(dòng)拉伸了34pt茧泪。
有很多反人類(lèi)但是必須得做的需求是,需要把tabbar
高度改為非原生值队伟,比如改成死值55.
- (void)viewWillLayoutSubviews{
CGRect tabFrame = self.tabBar.frame;
tabFrame.size.height = 55;
tabFrame.origin.y = self.view.frame.size.height - 55;
self.tabBar.frame = tabFrame;
}
這時(shí)候iPhonex 中就有問(wèn)題了嗜侮。
所以要換個(gè)方法,不要寫(xiě)死值锈颗。要么加變化量。要么單獨(dú)判斷下淋淀。
- (void)viewWillLayoutSubviews{
CGRect tabFrame = self.tabBar.frame;
CGFloat height? = tabFrame.size.height;
if(RD_iPhoneX){
height += 0;
}else{
height += 6;
}
tabFrame.size.height = height;
tabFrame.origin.y = self.view.frame.size.height - height;
self.tabBar.frame = tabFrame;
}