2013-10-24 203 views
1

嗨,我正在开发一个iPad应用程序。我习惯自定义标签栏。屏幕左侧的Tabbar按钮。我想看全屏。所以我试图隐藏tabbar的代码,但没有隐藏。我在屏幕底部看到灰色空间。加里空间高度IOS 7约49像素,但IOS 6约20像素。我能做什么。自定义标签栏应用程序ipad隐藏标签栏

- (void)hideTabBar 
{ 
    for(UIView *view in self.view.subviews) 
    { 
     if([view isKindOfClass:[UITabBar class]]) 
     { 
      view.hidden = YES; 
      break; 
     } 
    } 
} 

Gray space in IOS 7

回答

2

你可以做这样的事情定制UITabBar视图控制器,

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以及更多设置框架和框架的一些标志。

+0

谢谢@Viruss mca。此代码适用于IOS 6和更早版本。但不像你说的那样工作IOS 7。我添加了屏幕截图。你能帮我 – hiwordls

+0

@aoneki:检查这个http://imgur.com/DT7emnB –

+0

以前的答复正在工作。但由ios 5.0底部的20像素黑色空间组成。如果我转动屏幕,这个黑色空间会丢失。 ios 6没有任何问题 – hiwordls

0

在viewDidLoad中

[self.tabBar setHidden:YES]; 
    [self.view addSubview:self.viewButton]; // you custom buttons array view 
0

苹果的实现更加优雅,因为它将视图大小拉伸到足以在屏幕外获得其tabBar,并且同时它将自动拉伸包含的视图控制器的视图。

如果你只是隐藏你的标签栏,或者没有“下面的内容”(你的灰色空间)的内容,或者它不会识别轻敲。

你应该更好地继承UITabBar,并绘制它你喜欢,但仍然让UITabBarController适当地显示和隐藏它。

编辑:

只是意识到隐藏标签栏是不是在默认的SDK,但在category我很久以前作出。

无论如何拉伸UITabBarController的视图框架在我看来是“隐藏”标签栏的最优雅的方式(实际上将它从屏幕上移开),因为您不必处理子视图或搜索标签栏直接框架。

有关this的问题。