隐藏标签栏后视图大小减小

时间:2012-06-20 06:30:30

标签: iphone objective-c ios xcode cocoa-touch

在我的iPhone应用中。

我在UINavigationControllers中使用UITabBarController

像:

标签栏:

  • 导航控制器。

    • 查看Controller1。
  • 导航控制器。

    • 查看Controller2。

从任何上述视图控制器中查看Controllerx。

当我导航到View Controllerx时。

我正在隐藏标签栏。

问题是标签栏正在隐藏,但视图大小会减少。 白色空间出现在底部。

[self.tabBarController.tabBar setHidden:YES];
[self.tabBarController.tabBar setFrame:CGRectZero];
[self.navigationController pushViewController:obj_tipcalc animated:YES];
[obj_tipcalc release];

enter image description here

感谢。

4 个答案:

答案 0 :(得分:7)

您的导航控制器的视图位于UITabBarController的视图中,并且它不会填满整个屏幕。 只需尝试调整它的大小:

 ...
 CGRect biggerFrame = tabBarController.view.frame;
 biggerFrame.size.height += tabBarController.tabBar.frame.size.height;
 tabBarController.view.frame = biggerFrame ;
 ...

要恢复原始布局:

...
CGRect smallerFrame = tabBarController.view.frame;
smallerFrame.size.height -= tabBarController.tabBar.frame.size.height;
tabBarController.view.frame = smallerFrame;
...

答案 1 :(得分:0)

它可能会有所帮助。在ViewwillAppear中设置框架。

答案 2 :(得分:0)

隐藏标签栏后更改视图的框架:

CGRect *rect=view1.frame;
rect.size.height+=44;
view1.frame=rect;

答案 3 :(得分:0)

只需在TabBar中包含的viewController上调用loadView即可。这将重新加载具有适当大小的视图