1

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

IOS 7 中的灰色空间

4

3 回答 3

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 和更多版本中运行,请设置帧和一些帧标志。

于 2013-10-24T12:29:55.910 回答
0

在 viewDidLoad 中的自定义 UITabBar 视图控制器中

  [self.tabBar setHidden:YES];
  [self.view addSubview:self.viewButton]; // you custom buttons array view
于 2013-10-24T12:01:08.637 回答
0

Apple 的实现更加优雅,因为它将UITabBarController视图大小拉伸到足以使其tabBar超出屏幕的范围,同时它会自动拉伸包含的视图控制器的视图。

如果你只是隐藏你的标签栏,要么没有“下面”的内容(你的灰色空间),要么它无法识别水龙头。

您应该更好地进行子类化UITabBar并将其绘制成您喜欢的样子,但仍要UITabBarController为您正确显示和隐藏它。

编辑:

刚刚意识到隐藏标签栏不在默认SDK中,而是在我很久以前制作的类别中。

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

这个问题有关。

于 2014-03-25T06:01:29.190 回答