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 }
时间: 2024-10-24 02:22:03

iOS开发之隐藏tabbar--解决隐藏后依然不能响应对应位置事件的问题的相关文章

ios开发中iphone模拟器中程序文件和数据库的存放位置

1.使用命令: chflags nohidden ~/library/ 使隐藏的资源库文件夹显示出来.如果想要隐藏掉,使用:chflags hidden ~/library/ 2.finder中找到:用户->mwsn(这是我的用户名)->资源库->Application Support->iPhone Simulator->7.0(根据你的版本确定是哪个)->Applications 里面有一堆目录,挨个查看,找到你需要的工程的目录->Documents文件夹,你

IOS开发UISearchBar失去第一响应者身份后,取消按钮不执行点击事件的问题

在iOS开发中,使用UISearchBar的时候,当搜索框失去焦点的时候,取消按钮是默认不能点击的,如图按钮的颜色是灰色的:  这是因为此时取消按钮的enabled属性被设置为NO了,那么当我们需要让取消按钮一直可以点击的时候,就需要我们自己来改变该属性的赋值,这里举例当点击search按钮的时候,回收键盘的同时让取消按钮的可以点击,在代理方法里面添加代码如下: -(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar { [sea

iOS开发手记 - iOS9.3 UINavigationController添加后不显示storyboard中viewcontroller里的控件的解决方法

我原先是这么做的,通常也是这么做 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. ViewController *firstVC = [[ViewController alloc] init]; UIN

【iOS开发-61】更换plist资源后,运行程序iOS模拟器仍然显示上一次数据的样子,怎么解决?

(1)情形介绍 --我们先导入一个plist文件做项目,模拟运行查看效果. --删除plist,替换一个新的plist,CMD+R模拟运行,发现程序界面显示的还是上一次的数据. (2)原因 是因为第一次模拟运行时,已经生成了一个"沙盒",所有资源也都保存在这个沙盒中了(如果在用户手机中,相当于数据已经下载到用户手机里了).这个时候,我们尽管替换了,但是沙盒中得数据仍然是上一次的数据. (3)解决思路:清除上一次留下的数据,然后重新加载新的数据plist.(建议2步走) --先在模拟器中

iOS开发之实现TabBar中间凸起“+”按钮

参考:http://www.jianshu.com/p/46f61bc7a938,https://github.com/Mringkang/KBCustomCenterTabbar 效果: PS:左边和右边的按钮已在StoryBoard和其他代码文件设置好,这里只给出中间按钮的实现,按钮的背景图片需另外设计或下载,然后添加到资源库.另外,这里需要用到UIView分类的一些属性,参考http://www.cnblogs.com/guitarandcode/p/5758995.html   ,最后在

iOS开发-闪退问题-解决之前上架的 App 在 iOS 9 会闪退问题

最新更新:(2015.10.02) 开发环境: Delphi 10 Seattle OS X El Capitan v10.11 需使用下列 HotfixID: 30398, PAServer Hotfix for Delphi, C++Builder and RAD Studio 10 Seattle Xcode v7.0.1 iOS SDK v9.0 真机测试(以下机种皆不闪退): iPhone 3GS v6.1.2 (32 bit) iPhone 4 v7.1.2 (32 bit) iPh

IOS开发-关于自定义TabBar条

今天在做项目的时候,突然有一个模块需要自定义TabBar条. 在平常很多做项目的时候,都没有去自定义过,大部分都是使用系统自带的.今天整理一个自定义TabBar条的步骤. 首先看下我们最终实现的效果: 首先需要继承UItabBar自定义一个自己的tabBar .h #import <UIKit/UIKit.h> @class THTabBar; @protocol THTabBarDelegate <UITabBarDelegate> @optional - (void)tabBa

ios 开发日记19-应用提交申请后加急审核

之前只是听过加急审核这回事,一直也没有用到过.昨天用了下果然很给力.昨天晚上将近8点(北京时间)提交应用,今天早上上班看了下已经通过了审核,而且可以在AppStore里下载到. 话说加急的原因比较悲催,年前一直在做老版本的更新(一直在改别人代码的bug),临过年一周多的时候说不改了,做新版本的.心里终于舒服些,开始自己写新版本.2月7号上班到2月18号一直在做新版本.就在经理天天催,老板经常问进度的时候,实施那边说xxx那边20号要验收,验收不过要打官司了…… 然后开始悲催的继续找到以前别人的代

ios开发-UI-自定义Tabbar 图书布局

#import "ViewController.h" #import "CGTabbar.h" #import "QHCListView.h" #import "QHJavaListView.h" #import "QHOCListView.h" @interface ViewController ()<CGTabbarDelegate> @property(nonatomic,strong)N