适配 iPhone X Push 过程中 TabBar 位置上移

百家 作者:iOS开发 2017-10-23 11:53:06 阅读:322

点击上方“iOS开发”,选择“置顶公众号”

关键时刻,第一时间送达!


前言


就在刚刚GitHub有同学给我提了个Issue,说我的框架在iPhone X上跑有bug,Push新页面的时候TabBar会上移。开玩笑吧?我的框架怎么会有bug,这一定是个误会,于是我去iPhone X跑了一下,哎哟嘿,脸好疼


image.png


发现问题


来个慢动作:


iPhone X 不完美.gif


上图可发现,点击跳转的时候,TabBar的确迅速上移了一段距离,没搞懂为啥,也许苹果别有用心,但我在心里还是骂了一下库克等人。


解决问题


在UINavigationController的基类重写pushViewController代理方法,在Push的时候修正一下TabBar的frame


- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated

{

    if (self.viewControllers.count > 0) {

        if ([viewController conformsToProtocol:@protocol(XYTransitionProtocol)] && [self isNeedTransition:viewController]) {

            viewController.hidesBottomBarWhenPushed = NO;

        }else{

            viewController.hidesBottomBarWhenPushed = YES;

        }

        

    }

    [super pushViewController:viewController animated:animated];

    // 修改tabBra的frame

    CGRect frame = self.tabBarController.tabBar.frame;

    frame.origin.y = [UIScreen mainScreen].bounds.size.height - frame.size.height;

    self.tabBarController.tabBar.frame = frame;

}


修正完的效果:


iPhone X 完美.gif


我就说嘛,这一定是个误会,一个美丽的误会。




  • 作者:臭码农

  • http://www.jianshu.com/p/719ab369d011

  • iOS开发整理发布,转载请联系作者授权

【点击成为安卓大神】

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:http://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

图库
关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接