iPhoneX适配之TabBar

作者: 5c0d26b96912 | 来源:发表于2017-09-20 22:40 被阅读2648次

最近在做iPhoneX的适配,遇到了一些TabBar的问题。

对于原生TabBar,iPhoneX会在其底部增加34pt,为的是不影响所谓的HomeBar,从而整个TabBar的高度变为34+49=83pt, 如下图。


iPhoneX的TabBar

但当从含有TabBar的页面push一个新页面时,TabBar会先上移34pt,并产生一个黑条,如下图。


TabBar黑条

这个体验确实很渗人,也不知道是iOS11的问题,还是项目代码有问题。查阅了一下资料,发现也有其他人出现了这个问题,但是没有提到解决办法。
于是自己开始尝试解决,最终找到一个巧妙的办法,在页面隐藏时强制设置一下TabBar的位置,代码如下:

#define SCREEN_WIDTH  [UIScreen mainScreen].bounds.size.width
#define SCREEN_HEIGHT [UIScreen mainScreen].bounds.size.height

#define HEIGHT_TAB_BAR         49
#define HEIGHT_BOTTOM_MARGIN   (SCREEN_HEIGHT==812?34:0) // 因为只有iPhoneX的高度为812pt
- (void)viewWillDisappear:(BOOL)animated
{
  [super viewWillDisappear:animated];
  self.tabBarController.tabBar.frame = CGRectMake(0, SCREEN_HEIGHT-HEIGHT_TAB_BAR-HEIGHT_BOTTOM_MARGIN, SCREEN_WIDTH, HEIGHT_TAB_BAR+HEIGHT_BOTTOM_MARGIN);
}

最终效果图如下:


TabBar正常效果图

文笔不好,请见谅。如有更好的解决办法,烦请分享一下!!

相关文章

网友评论

    本文标题:iPhoneX适配之TabBar

    本文链接:https://www.haomeiwen.com/subject/lrdasxtx.html