美文网首页小问题
iOS12.1 解决视图控制器pop时跳动问题

iOS12.1 解决视图控制器pop时跳动问题

作者: ramborange | 来源:发表于2018-12-04 09:51 被阅读126次

在iOS12.1上,Tabbar一旦设置为透明状态,就会出现在控制器pop到根控制器的时候出现tabbar跳动,目前网上解决的办法也有一些,目前来说有设置透明度为NO,和重写tabbar的,但是对于一些项目为了不必影响其他界面布局,就必须采用简单粗暴的办法:

一下方法经测试基本上可以解决跳动问题,目测基本看不出来:
- (UIViewController *)popViewControllerAnimated:(BOOL)animated {
    [super popViewControllerAnimated:animated];
    DLog(@"\n\n  --- Base NavigationController Poped! --- \n\n");
    
    //iOS 12.1 Tabbar跳动问题
    if ([[[UIDevice currentDevice] systemVersion] doubleValue] >= 12.1) {
        NSInteger viewcontrollersCount = self.viewControllers.count;
        DLog(@"\n\n  [  -- %ld -- ] \n\n",viewcontrollersCount);
        if (viewcontrollersCount==1) {//返回根视图控制器才显示tabbar(可以根据具体情况)
            JFTabBarViewController *tab = RooT_APPViewController;
            tab.tabBar.hidden = YES;
            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
                tab.tabBar.hidden = NO;
            });
        }
    }
    
    return self.topViewController;
}

原理非常简单,pop的时候先判断如果是iOS12.1,先隐藏,0.2秒后再显示,完美解决!

相关文章

网友评论

    本文标题:iOS12.1 解决视图控制器pop时跳动问题

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