[IOS]iphoneX简单适配

业务界面有tab bar,由于iPhone X的屏幕高是812,所有会导致tab bar与layout之间有空隙。只需要把tab bar向上移动并且把background设置成黑色,即可以在下面留一条黑边。

判断iPhone X:

#define KIsiPhoneX ([UIScreen instancesRespondToSelector:@selector
(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] 
currentMode].size) : NO)

如果是iPhone X的话就,改变y点,把自己code的tab bar button向上画:

if (KIsiPhoneX) {
        bottom_tab_bar_view = [[UIView alloc] initWithFrame:CGRectMake(0, 
screenHeight - 83, screenWidth, 55)];
        
    }else{
        bottom_tab_bar_view = [[UIView alloc] initWithFrame:CGRectMake(0, 
screenHeight - 55, screenWidth, 55)];
    }

由于本来我的自定义的tab bar 是覆盖系统原生的tab bar view的,向上画以后会显示出了原生tab bar view的图层,一般可以有两种方式处理:

1.把tab bar view的背景色改成黑色,使下面留一条黑边:

self.tabBar.barTintColor = [UIColor blackColor];
//    [[UITabBar appearance] setBarTintColor:[UIColor blackColor]];//第二种写法,选其一
    [UITabBar appearance].translucent = NO;

2.隐藏了系统的tab bar view,显示controller的背景色(可设置成黑色):

[self.tabBar setHidden:YES];

 但是这里有一个问题,ios的机制,所有的view拉满屏幕大小,其实在显示上是忽略navigation bar 和tab bar的,也就是说navigation bar 和tab bar 不会遮挡storyboard里面拉满页面大小的view。但是我在这里隐藏了tab bar,导致整个页面会向下移动,原本可以显示的部分却被我自定义的tab bar挡住了。这样的话,只能在每个被遮挡了的controller里面添加一个距离底部tab bar高度约束,使页面重新向上。

两种方法的显示效果基本一样,但是,由于第二种方法使整个页面向上,使基本可以保持原有UI,尤其是图片的缩放比的。第一种方法比较简单,但是由于iPhone X的屏幕比变大了,某些地方会出现拉伸图片的现象。

猜你喜欢

转载自jameskaron.iteye.com/blog/2414802