在ios中自定义tabbar跳转隐藏问题

来源:互联网 发布:美国移交域名管理 编辑:程序博客网 时间:2024/06/04 21:39

自定义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];

 

}

0 0
原创粉丝点击