zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    Ueditor使用以及遇到的问题
    自己写一个分页PageHelper
    C#_IO操作_查询指定文件夹下的每个子文件夹占空间的大小
    C#发邮件_EmailHelper
    位运算反(~)与(&)异或(^)或(|)右移(>>)左移(<<)
    shell命令快捷键
    Openstack Day1简介及虚拟环境搭建
    VirtualBox双网卡搭建Linux虚拟实验环境
    git 学习笔记
    python socket 网络编程
  • 原文地址:https://www.cnblogs.com/liuqixu/p/4683196.html
Copyright © 2011-2022 走看看