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,并且设置frame(frame写死了,读者可以根据自己的需求改,笔者用的自定义高为44)
ERTabBar *tabBar = [[ERTabBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
设置系统tabbar的高度(其他博客或者论坛也有这样解决的)
CGRect frame = [UIScreen mainScreen].bounds;self.tabBar.frame = CGRectMake(0, CGRectGetHeight(frame)-44, CGRectGetWidth(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跳转隐藏问题的方法的主要内容,如果未能解决你的问题,请参考以下文章
隐藏自定义tabbar(关于tabbar的hide属性对于自定义无效)