1

我一直试图让我的 TabBarController 的一部分全屏显示一段时间,但仍然无法弄清楚最后一块。

所以我可以使用下面的代码将 UIViewController 放在 UINavigationBar 后面。

self.navigationController.navigationBar.translucent = YES;
self.wantsFullScreenLayout = YES;

还可以使用下面的代码隐藏 UINavigationBar 和 TabBarController。

[self.navigationController setNavigationBarHidden:YES animated:NO];
[self.tabBarController.tabBar setHidden:YES];

但是,在隐藏之前,我的 UIViewController 的高度仍然不会延伸到 TabBarController 所在的位置之后。所以看起来下面好像有一个空白区域。
附图片。

在此处输入图像描述

我尝试更改 self.tabBarController.view.frame 并绑定。还是不做。似乎有什么东西阻止它覆盖底部。

我怎样才能做到这一点?

谢谢你,
三通

4

1 回答 1

1

UITabBarController 的设计不允许其子视图位于标签栏“后面”,可能是因为标签栏不能是半透明的。尽管[self.tabBarController.tabBar setHidden:YES]确实隐藏了选项卡栏,但它并没有告诉 UITabBarController 将您的视图布置在通常由选项卡栏占据的空间中。事实上,没有真正支持的方式来做到这一点。

OTOH,如果您愿意冒险在未来的 iOS 版本中出现问题,手动重新定位标签栏很容易。UITabBarControllerview有两个子视图:一个是标签栏,另一个是内容视图(包含来自当前活动视图控制器的视图)。只需调整内容视图的大小以占用空间;如果您愿意,您甚至可以将标签栏设置为从屏幕底部移出的动画。

于 2011-08-09T20:59:04.923 回答