ios中解决自定义tabbar跳转隐藏问题的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios中解决自定义tabbar跳转隐藏问题的方法相关的知识,希望对你有一定的参考价值。

ios开发(http://www.maiziedu.com/course/ios/中,如何自定义tabbar高度的跳转隐藏问题,比如和系统自带的tabbar高度不一样导致的有一条线的问题,还有push时动画效果等等一些列问题不在这里累述了,当然,思路有很多,可以参考以上链接自己琢磨琢磨,好了,下面直接上个人认为完美解决办法。

需求

1、自定义tabbar,不用系统的tabbar

2、第二点需求是自定义tabbar的高度和系统的不一样,系统的tabbar高度为49,就是因为这点导致第三个需求有多重解决方法。

3、跳转隐藏tabbar,这个需求很简单,但是在第二个需求的前提下第三个需求并不是这么容易实现了。

 

完美解决办法(只写关键代码)

自定义tabbar

// 创建一个自定义的tabbar,并且设置frameframe写死了,读者可以根据自己的需求改,笔者用的自定义高为44

ERTabBar *tabBar = [[ERTabBar alloc] initWithFrame:CGRectMake(0032044)];

设置系统tabbar的高度(其他博客或者论坛也有这样解决的)

CGRect frame = [UIScreen mainScreen].bounds;self.tabBar.frame = CGRectMake(0CGRectGetHeight(frame)-44CGRectGetWidth(frame), 44);UIView *transitionView = [[self.view subviews] objectAtIndex:0];

frame.size.height = CGRectGetHeight(frame) - 44;

transitionView.frame = frame;

把自定的tabbar添加到系统自带的tabbar上面

[self.tabBar addSubview:tabBar];

viewWillAppear方法中删除系统自带的tabBarButton

- (void)viewWillAppear:(BOOL)animated

{

[super viewWillAppear:animated];

    // 删除系统自带的tabBarButton

    for (UIView *tabBarButton in self.tabBar.subviews) {

        if ([tabBarButton isKindOfClass:NSClassFromString(@"UITabBarButton")]) {

            [tabBarButton removeFromSuperview];

        }

    }

}

跳转隐藏

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

{if (self.childViewControllers.count) { // 不是根控制器

    

    viewController.hidesBottomBarWhenPushed = YES;

 

[super pushViewController:viewController animated:animated];

 

}


以上是关于ios中解决自定义tabbar跳转隐藏问题的方法的主要内容,如果未能解决你的问题,请参考以下文章

iOS 自定义tab bar 怎么隐藏

隐藏自定义tabbar(关于tabbar的hide属性对于自定义无效)

uni-app自定义tabBar

隐藏 TabBar 并在按钮单击时显示 NavigationController 工具栏

微信小程序 自定义tabbar 防止闪动

小程序自定义tabbar闪动问题