美文网首页
解决push时tabbar闪动问题

解决push时tabbar闪动问题

作者: 过桥的蚂蚁 | 来源:发表于2019-01-14 16:10 被阅读0次

    今天项目中遇到一个问题, 当push后隐藏tabbar时, 偶尔会出现Tabbar闪动问题.查找根源,发现当我模态一个控制器后,再push到一个视图并隐藏tabbar时,一定会出现tabbar闪动问题.

    // psuh后隐藏tabbar,通过在基类中重写该方法实现
    - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated {
        if (self.viewControllers.count > 0) {
            viewController.hidesBottomBarWhenPushed = YES;
        }
        [super pushViewController:viewController animated:animated];
    }
    

    tabbar闪动问题


    正常push.gif 模态后push.gif

    解决方法: 在AppDelegate里或tabbar基类中设置如下

    // 设置背景是否透明,默认为YES
    [[UITabBar appearance] setTranslucent:NO];
    
    该属性的官方解释

    UINavigationBar/UITabBar的translucent属性解释:默认为YES,可以通过设置NO来强制使用非透明背景,如果导航条使用自定义背景图片,那么默认情况该属性的值由图片的alpha(透明度)决定,如果alpha的透明度小于1.0值为YES。如果手动设置translucent为YES并且使用自定义不透明图片,那么会自动设置系统透明度(小于1.0)在这个图片上。如果手动设置translucent为NO并且使用自定义带透明度(透明度小于0)的图片,那么系统会展示这张背景图片,只不过这张图片会使用事先确定的barTintColor进行不透明处理,若barTintColor为空,则会使用UIBarStyleBlack(黑色)或者UIBarStyleDefault(白色)

    相关文章

      网友评论

          本文标题:解决push时tabbar闪动问题

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