iOS开发之隐藏tabbar--解决隐藏后依然不能响应对应位置事件的问题
状态条StatusBar
1 [UIApplication sharedApplication].statusBarHidden = YES;
导航条NavigationBar
1 [self.navigationController setNavigationBarHidden:YES];
TabBar
方法1
1 [self.tabBarController.tabBar setHidden:YES];
这个方法有问题,虽然tabBar被隐藏了,但是那片区域变成了一片空白,无法被其他视图使用。
方法2
对于navigationController+tabBarController的结构,可以在push下一级的childController之前将childController的hidesBottomBarWhenPushed属性设为YES。
比如,可以在childController的初始化方法中做这件事,代码如下:
1 // The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad. 2 3 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 4 self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 5 if (self) { 6 // Custom initialization. 7 self.hidesBottomBarWhenPushed = YES; 8 } 9 return self; 10 }
方法3
http://www.azumi.cc/thread-539502-1-1.html
1 - (void)makeTabBarHidden:(BOOL)hide 2 { 3 if ( [self.tabBarController.view.subviews count] < 2 ) 4 { 5 return; 6 } 7 UIView *contentView; 8 9 if ( [[self.tabBarController.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]] ) 10 { 11 contentView = [self.tabBarController.view.subviews objectAtIndex:1]; 12 } 13 else 14 { 15 contentView = [self.tabBarController.view.subviews objectAtIndex:0]; 16 } 17 // [UIView beginAnimations:@"TabbarHide" context:nil]; 18 if ( hide ) 19 { 20 contentView.frame = self.tabBarController.view.bounds; 21 } 22 else 23 { 24 contentView.frame = CGRectMake(self.tabBarController.view.bounds.origin.x, 25 self.tabBarController.view.bounds.origin.y, 26 self.tabBarController.view.bounds.size.width, 27 self.tabBarController.view.bounds.size.height - self.tabBarController.tabBar.frame.size.height); 28 } 29 30 self.tabBarController.tabBar.hidden = hide; 31 // [UIView commitAnimations]; 32 }
时机
1 - (void)viewWillAppear:(BOOL)animated { 2 [self setFullScreen:YES]; 3 } 4 5 - (void)viewWillDisappear:(BOOL)animated { 6 [self setFullScreen:NO]; 7 } 8 9 - (void)setFullScreen:(BOOL)fullScreen { 10 // 状态条 11 [UIApplication sharedApplication].statusBarHidden = fullScreen; 12 // 导航条 13 [self.navigationController setNavigationBarHidden:fullScreen]; 14 // tabBar的隐藏通过在初始化方法中设置hidesBottomBarWhenPushed属性来实现。 15 }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。