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

本文主要是介绍iOS开发之隐藏tabbar解决隐藏后依然不能响应对应位置事件的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章来源: http://www.itnose.net/detail/6251924.html
更多文章: http://www.itnose.net
状态条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)hide2 {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 }
       相关文章: http://www.itnose.net/st/6251924.html

这篇关于iOS开发之隐藏tabbar解决隐藏后依然不能响应对应位置事件的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/944781

相关文章

不能从 java.io.InputStream 转换为 org.omg.CORBA.portable.InputStream

java中有两个包都包含InputStream,而在使用IDE工具时可能会默认把org.omg.CORBA.portable.InputStream这个包放在前面的。 解决方法:1 手动把org.omg.CORBA.portable.InputStream包换成 java.io.InputStream           或者 2 在使用IDE自动补全时向下选择 java.io.Inpu

sql读写图片时Image.FromStream方法提示参数错误问题解决

我们通常这么写 using (SqlDataReader drm = sqlComm.ExecuteReader()){drm.Read();//以下把数据库中读出的Image流在图片框中显示出来.MemoryStream ms = new MemoryStream((byte[])drm["Logo"]);Image img = Image.FromStream(ms);this.pictur

Windows开发环境构建之Java篇

Windows开发环境构建之Java篇 前一段时间,重装了一下Windows的机器,这边就总结一下重新装机的心得体会,重新装机主要保罗如下几个部分: - 1. 安装JDK - 2. 安装Tomcat - 3. 安装IDE(Eclipse) - 4. 安装Maven - 5. 安装Myql+syslog(或者Navicate) - 6. 安装SourceTree - 7. 安装Fir

AI 情感聊天机器人工作之旅 —— 与复读机问题的相遇与别离

前言:先前在杭州的一家大模型公司从事海外闲聊机器人产品,目前已经离职,文章主要讨论在闲聊场景下遇到的“复读机”问题以及一些我个人的思考和解决方案。文章内部已经对相关公司和人员信息做了去敏,如仍涉及到机密等情况,可删除。 meta 开源 Llama2 后,我们立马将基座模型从 Llama1 更换为了 Llama2。很重要的一个原因在于 Llama2 的 context length 是 4k,是

阿里大于 短信发送API开发介绍(JAVA)

SMS 短信发送API开发介绍 阿里大于注册阿里大于应用/模板/签名 介绍阿里大于API介绍阿里大于Demo 1.1 阿里大于注册 阿里大于的帐户可以使用阿里的帐号登陆,使用账户前需要进行实名制的认证。阿里大于地址。 1.2 阿里大于应用/模板/签名 介绍 在获取发送短信的Demo前,我们应当查看如下几点内容: * 应用 应用拥有一对(App Key/App Secret)

Flume自定义开发常见异常及解决办法

前言 前些日子,对Flume进行了自定义sink和source的开发。遇到一些异常,以后关于Flume的异常都统一记录与此处。(除了个别较为麻烦的异常处理) 正文 Flume source has been removed due to an error in configuration 中文含义: Flume的source部分因为配置异常被移除。 表象: Flume中source没有启

AI视频教程下载:基于OpenAl、LangChain、 Replicate开发AI应用程序

欢迎来到令人兴奋的 AI 应用世界!在这门课程中,你将学习到创建一个能够与用户互动、理解自然语言、处理音频输入,甚至分析图像的真正智能应用所需的技能和技术。 AI 工具和技术 你将获得使用几个知名 AI API 和技术的实际经验。这些行业领先的平台将作为我们 AI 应用的构建块。我们将使用的一些技术包括: OpenAI: 我们将深入探索 OpenAI 的 Chat Completi

Qt-FFmpeg开发-打开摄像头直接显示YUYV422图像(12)

Qt-FFmpeg开发-打开摄像头直接显示YUYV422图像📀 文章目录 Qt-FFmpeg开发-打开摄像头直接显示YUYV422图像📀1、概述📸2、实现效果💽3、主要代码🔍4、完整源代码📑 更多精彩内容👉个人内容分类汇总 👈👉音视频开发 👈 1、概述📸 最近研究了一下FFmpeg开发,功能实在是太强大了,网上ffmpeg3、4的文章还是很多

Unity射击游戏开发教程:(15)添加推进器推进和推进器推进动画

这是一个可以添加到我的游戏中的简单而有趣的功能。当玩家按住 Shift 按钮时,速度会加快,松开 Shift 按钮时,速度会恢复到原来的速度。 这需要不同的输入检测。通常使用的是Input.GetKeyDown并传入你想要获取的key。这只会检测在当前帧期间是否按下了按钮,但如果按住,将不再检测到。使用Input.GetKey 将继续检测该键是否被按住。因此,我们将使用

[Mac硬件相关] 电脑无法启动不要方 几点确定问题

前言 就在昨天. Mac突然无法开机了. 总结几点问题. 细节 其实. 开机不能重启. 主要包括2点问题: 硬件问题软件问题 硬件问题 电源 接上电源线查看是否可以启动. 若电源线可以启动, 电池无法启动. 即为电池问题.键盘 & 屏幕 键盘按开机后. 键盘上的caps lock键灯是否亮. 亮了代表键盘没有问题.屏幕 一般黑屏还有一种问题是屏幕损坏. 需拿到维修点维修.硬盘 有一