UITabBarController with hidden UITabBar

2023-05-16

...

None of these solutions I've been able to find (here, or elsewhere) to hide a UITabBar as part of a UITabBarController worked well for me. In general, the solutions I found always had some problem when changing orientation, or were tied to a fixed size.

After grappling with this problem and experimenting with various solutions I eventually figured out the following fairly simple solution, which is working very well in testing so far. Easy to implement, and doesn't seem to cause any other problems. In particular, it plays very nicely with interface orientation changes.

I resolved the problem using the following method in a subclass of UITabBarController. In theory, you could also put this in the delegate to avoid having to subclass. I would only require some minor changes (eg, replace 'self' with the UITabBarController object). I call this method from the delegate's tabBarController:shouldSelectViewController: method, and tell it to hide the tab bar for one of the items (the one I want to be full screen), and to not hide for any of the other items.

Is this safe to use? Are there likely to be any problems with this that I've not come across yet?

The only problem I can think of is that if UITabBarController's view ever gets more than two subviews (it depends on it having two subviews: the tab bar and the content view).
@implementation CustomTabBarController

- (void)makeTabBarHidden:(BOOL)hide
{
	if ( [self.view.subviews count] < 2 )
		return;
	
	UIView *contentView;
	
	if ( [[self.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]] )
		contentView = [self.view.subviews objectAtIndex:1];
	else
		contentView = [self.view.subviews objectAtIndex:0];
	
	if ( hide )
	{
		contentView.frame = self.view.bounds;		
	}
	else
	{
		contentView.frame = CGRectMake(self.view.bounds.origin.x,
			self.view.bounds.origin.y,
			self.view.bounds.size.width,
			self.view.bounds.size.height - self.tabBar.frame.size.height);
	}
	
	self.tabBar.hidden = hide;
}

@end

转帖:http://www.iphonedevsdk.com/forum/iphone-sdk-development/4091-uitabbarcontroller-hidden-uitabbar.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UITabBarController with hidden UITabBar 的相关文章

  • iOS 11 iPhone X 模拟器选项卡栏图标和标题呈现在顶部,相互覆盖

    有人对 iPhone X 模拟器的 UITabBar 组件有疑问吗 我的似乎将图标和标题渲染在彼此之上 我不确定我是否遗漏了任何东西 我也在 iPhone 8 模拟器中运行了它 以及一个实际设备 它看起来很好 正如故事板 iPhone X
  • 获取隐藏元素的偏移量

    如何获取隐藏元素的坐标 offset 不支持使用隐藏元素 有什么提示吗 如果你的元素有 hide 调用它 或者如果它有display none在CSS中 浏览器根本不费心去渲染它 在这种情况下 答案不是直接的 在最近的jQueries中 你
  • 如何创建半透明(后面有内容)UITabBar

    我对 UITabBar 进行了子类化并重写了drawRect 方法以使其透明 并使其看起来像我需要的那样 我遇到的问题是添加到 UITabBarController 的视图没有覆盖整个屏幕 而是在底部上方 49 像素处结束 所以即使我有透明
  • css嵌入无滚动条

    好吧 我有一个带有 ajax 按钮的页面 当您点击 ajax 按钮时 它会将一个嵌入对象扔到 data div 中 一切正常 我的问题是嵌入正在创建一个我不想要的滚动条 关于如何防止滚动条有什么想法吗 我已经尝试过在任何地方都可以抛出 ov
  • iOS 7.1 问题 - 当触摸并拖动该选项卡按钮时,选项卡栏图标图像会自动调整大小

    我有这个代码 tabBarItem1 setFinishedSelectedImage UIImage imageNamed tab pressed home icon withFinishedUnselectedImage UIImage
  • 如何使用 JavaScript 添加/删除

    中的隐藏内容

    如何添加和删除 hidden from p My Text p 我尝试删除该属性并将其设置为 false 但它们都不起作用 let p document getElementsByTagName p let myText for i 0 i
  • 在 VBE 中无法查看 Excel 工作表

    我正在使用其他人创建的 Excel 文件 一张包含宏的工作表似乎受密码保护 但我不明白的是我无法在工作表列表下的 VBE 中看到它 工作表选项卡在 Excel 中可见 但我看不到内容 有没有办法在VBE中取消隐藏它 一张包含宏的工作表 这是
  • 为什么要更改选项卡,停止 ios 应用程序中的动画?

    我的应用程序中有多个选项卡 我的一个视图控制器正在运行动画 当我切换到另一个视图控制器 并再次进入带有动画的视图控制器时 动画停止 有人可以指导我使用 Xcode 甚至在 Iphone 应用程序中切换选项卡吗 IBAction btn id
  • didSelectViewController 方法没有被调用(带有故事板)

    我有 2 个版本的选项卡式 ios5 应用程序 一个使用情节提要创建 一个使用 xib 文件创建 故事板版本不调用UITabBarControllerDelegate method didSelectViewController xib 版
  • 出现故事板之前的选项卡栏项目标题

    我的应用程序从一个有 5 个选项卡的选项卡栏控制器开始 一开始 第一个出现了它的名字 但其他四个没有名字 直到我点击它们 然后根据用户使用的语言显示名称 如何在选项卡栏出现之前设置选项卡的名称 我正在使用故事板 当所有其余的事情都通过情节提
  • 使用 jQuery 检查 div 是否隐藏

    这是我的div div style display none div 然后我有一个显示按钮 当您单击时将显示 div show click function car2 show 所以现在我想检查 div 是否 car2在表单提交之前仍然隐藏
  • TabBar 图像的大小应该是多少?

    我有一个大小为 100 的 tabBar 图标 我检查了Apple 2013 年人机界面指南 https web archive org web 20130631121714 http developer apple com library
  • 更改 TabBarItem 的 ViewController

    是否可以更改 替换 UITabBarController 中选项卡之一的 ViewController 和 View 我想从特定选项卡以任意顺序在 3 个不同的视图控制器之间切换 这就是导航控制器不可能的原因 它们是使用 setViewCo
  • 配置具有超过 16 个项目的 UITabBar

    My UITabBarController包含超过 16 个视图控制器 当我进入 更多 选项卡时 我可以看到所有UITabBarItems 如果我单击 编辑 按钮 我可以看到前 16 个图标 但没有足够的空间来显示更多图标 因此从第 17
  • 如何使用故事板通过自定义图像设置 iPhone 选项卡栏图标

    我是 iphone 开发的新手 我需要在标签栏中放置一个自定义图像图标 但它只显示默认颜色 黑色和蓝色 帮助我克服这个错误朋友 在应用程序中添加图像 并参见附图
  • Android Web 视图中隐藏在键盘下方的文本框

    我创建了一个简单的 iPhone Android 应用程序 包含一个普通的 Web 视图 这个网络视图调用我的网站 在我的网站上有几种输入类型 文本或文本区域的表单 当它们位于页面底部时 我遇到了问题 1 在我的iPhone应用程序中 键盘
  • UITabBar 显示更多图标而不是“更多”选项

    我目前正在尝试使用UITabBar对于包含 7 个的 iOS 应用程序tabBar Items 当我使用故事板时 我能够实现所有 7 个目标tabBarItems 当我以编程方式添加tabBarItems 它强制 更多 按钮访问其他 tab
  • 添加UITabBarController并且没有NavigationController

    由于我是 Xamarin IOS 的新手 我想问一个问题 我已经关注了这个例子 https developer xamarin com guides ios user interface controls creating tabbed a
  • 如何在 Swift 编程中获得基于导航的模板功能

    我的项目需要一个导航控制器 并且我的应用程序最初有一个社交登录 一旦验证通过 用户将被推送到另一个视图 我在其中显示一个具有 2 个选项卡的选项卡控制器 我不知道如何在 Swift 编程中做到这一点 我已将视图控制器嵌入到导航控制器中 一旦
  • 将自定义图像设置为 UIBarButtonItem 但它不显示任何图像

    我想将自定义图像设置为 UIBarButtonItem 但它只显示周围的矩形框并且不显示实际图像 func setupBrowserToolbar let browser UIToolbar frame CGRect x 0 y 20 wi

随机推荐