【发布时间】:2011-11-23 02:43:01
【问题描述】:
我有一个视图控制器,但是当我隐藏标签栏时,标签栏所在的位置只有一个黑色空间。我想让我的视图控制器位于标签栏后面,所以当我隐藏它时,它会显示视图内容。我正在使用一个简单的 UITabBarController。谢谢。
【问题讨论】:
-
您是否在 IB 中调整了视图的大小,特别是为了适应标签栏?
我有一个视图控制器,但是当我隐藏标签栏时,标签栏所在的位置只有一个黑色空间。我想让我的视图控制器位于标签栏后面,所以当我隐藏它时,它会显示视图内容。我正在使用一个简单的 UITabBarController。谢谢。
【问题讨论】:
据我所知,你不能这样做。问题是视图控制器位于标签栏控制器中,而不是相反。
解决这个问题的方法是为没有标签栏控制器的新导航控制器更改窗口视图,或者使用模式视图来显示没有标签栏控制器的内容。
【讨论】:
问题是视图控制器上的视图不够高,无法容纳标签栏占用的空间。
CGRect current = [[self view] frame];
CGRect tabBarFrame = [[self tabBar] frame];
CGRect newFrame = CGRectMake(current.origin.x, current.origin.y, current.size.width, current.size.height + tabBarFrame.size.height);
[[self view] setFrame:newFrame];
类似的东西可能就是你想要的。或者你可以在 IB 中调整它的大小。
但是,我不知道您为什么要使用 UITabBarController 然后隐藏标签栏...如果您看不到标签栏,则无法切换标签...因此使 UITabBarController 几乎只是一个UIViewController。
【讨论】:
我相信,如果你给 UIViewController 的 view 属性一个固定的下边距和一个灵活的高度,那么它会自动拉伸以填充包含视图的高度。
mycontroller.view.autoresizingMask = UIViewAutoresizingFlexibleHeight
【讨论】: