您好我正在开发一个iPad应用程序。我以前用自定义标签栏。屏幕左侧还有标签栏按钮。我想看全屏。所以我尝试了隐藏标签栏的代码,但没有隐藏。我在屏幕底部看到灰色空间。加里空间高度为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;
}
}
}
答案 0 :(得分: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及更多设置框架和一些框架标志中运行。
答案 1 :(得分:0)
在viewDidLoad中的自定义UITabBar视图控制器
[self.tabBar setHidden:YES];
[self.view addSubview:self.viewButton]; // you custom buttons array view
答案 2 :(得分:0)
Apple的实现更加优雅,因为它扩展了UITabBarController
视图大小,足以让它在屏幕外显示tabBar
,同时它会自动拉伸所包含视图控制器的视图。 / p>
如果您只是隐藏标签栏,则“它下面没有”内容(您的灰色空间)或者它无法识别水龙头。
您应该更好地将UITabBar
作为子类并将其绘制成您想要的但仍然让UITabBarController
正确显示并隐藏它。
修改强>
刚才意识到隐藏标签栏不在默认SDK中,而是在很久以前的category中。
无论如何,拉伸UITabBarController
的视图框架在我看来是“隐藏”标签栏(实际上将其移离屏幕)的最优雅方式,因为您不必处理子视图或追捕标签栏直接框架。
与this问题相关。