自定义标签栏应用 ipad 隐藏标签栏
Posted
技术标签:
【中文标题】自定义标签栏应用 ipad 隐藏标签栏【英文标题】:Custom Tabbar application ipad hide tabbar 【发布时间】:2013-10-24 11:58:03 【问题描述】:您好,我正在开发一个 iPad 应用程序。我曾经自定义标签栏。还有屏幕左侧的标签栏按钮。我想看全屏。所以我尝试了隐藏标签栏的代码,但没有隐藏。我在屏幕底部看到灰色空间。 Gary 空间高度是 ios 7 大约 49 px,但 IOS 6 大约 20 px。我该怎么办。
- (void)hideTabBar
for(UIView *view in self.view.subviews)
if([view isKindOfClass:[UITabBar class]])
view.hidden = YES;
break;
【问题讨论】:
【参考方案1】:你可以这样做,
for(UIView *view in self.tabBarController.view.subviews)
if([view isKindOfClass:[UITabBar class]])
[view setFrame:CGRectMake(view.frame.origin.x, 1024, view.frame.size.width, view.frame.size.height)];
else
[view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 1024)];
注意:这是在 ios 6 和更早的版本中测试的,所以如果你想在 ios 7 和更高版本中运行,请设置框架和框架的一些标志。
【讨论】:
谢谢@Viruss mca。此代码适用于 IOS 6 及更早版本。但不要像你说的那样工作IOS 7。我添加了屏幕截图。你能帮我吗 之前的回复有效。但在 ios 5.0 的底部包含 20 像素的黑色空间。如果我转动屏幕,这个黑色空间就会丢失。 ios 6没有任何问题【参考方案2】:在viewDidLoad的自定义UITabBar视图控制器中
[self.tabBar setHidden:YES];
[self.view addSubview:self.viewButton]; // you custom buttons array view
【讨论】:
【参考方案3】:Apple 的实现更加优雅,因为它将UITabBarController
视图大小拉伸到足以将其tabBar
显示在屏幕之外,同时它会自动拉伸包含的视图控制器的视图。
如果你只是隐藏你的标签栏,要么“下面”没有内容(你的灰色空间),要么它无法识别点击。
您最好继承UITabBar
并绘制您喜欢的样式,但仍让UITabBarController
为您正确显示和隐藏它。
编辑:
刚刚意识到隐藏标签栏不是在默认SDK中,而是在我很久以前制作的category中。
无论如何,拉伸UITabBarController
的视图框架在我看来是“隐藏”标签栏(实际上将其从屏幕上移开)的最优雅方式,因为您不必处理子视图或寻找标签直接条框。
与this问题有关。
【讨论】:
以上是关于自定义标签栏应用 ipad 隐藏标签栏的主要内容,如果未能解决你的问题,请参考以下文章
iOS7标签栏自定义图标高度 - 高度减小直到图标变得不可见