解决push时tabbar闪动问题

今天项目中遇到一个问题, 当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(白色)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容