自定义Tabbar应用程序ipad隐藏tabbar

时间:2013-10-24 11:58:03

标签: ios uitabbarcontroller tabbar

您好我正在开发一个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;
        }
    }
}

Gray space in IOS 7

3 个答案:

答案 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问题相关。