zoukankan      html  css  js  c++  java
  • iOS如何隐藏各种bar

    状态条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 }
  • 相关阅读:
    我的第一个项目--总结
    c++中的继承
    指针带来的意想不到的功能紊乱
    一个很难发现的内存泄漏
    我的第一个项目--迭代开发总结
    内存访问冲突问题(非法内存访问)
    Debug Assertion Failed mfc140ud.dll
    javaweb 开发总结五-----servlet开发(一)
    javaweb学习总结四---http协议
    Tomcat服务器学习和使用二·
  • 原文地址:https://www.cnblogs.com/chu888chu888/p/2256709.html
Copyright © 2011-2022 走看看