自定义标签栏应用 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标签栏自定义图标高度 - 高度减小直到图标变得不可见

ecshop按自定义导航栏上面的标签最下面的一排文章标签不居中 偏左

推送时隐藏自定义标签栏

iPad导航栏自定义高度

如何在ios中更改标签栏项目的背景图像?

如何在我的自定义导航控制器中隐藏标签栏?