使用UITabBarController时,如何获得底部标签栏的大小?同样,您如何知道内容的标签视图中有多少空间?我看到很多人将他们的标签子视图调整为[[UIScreen mainScreen] applicationFrame]的例子,这可能是正确的,因为标签栏占据了屏幕底部的一些空间。

另外,是否可以修改标签栏的大小?

由于 莱恩

有帮助吗?

解决方案

你可以使用applicationFrame的原因是UITabBarController调整了它的子控件的视图大小,所以只要你的视图支持正确调整大小,它就会全部解决。

您可以通过访问标签栏控制器的tabBar属性并查看其框架来获取标签栏的大小。通过查看标签栏控制器的视图属性的框架,可以找到标签栏的总大小加上视图的区域,因此可以通过一个小的减法来获得您正在寻找的数字:

CGFloat myViewHeight = tabBarController.view  .size.height
                     - tabBarController.tabBar.size.height;

其他提示

老问题,但无论如何:

如果您不从NIB加载视图,请在loadView函数中设置自动调整大小标记;像这样的东西:

self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight |
                             UIViewAutoresizingFlexibleWidth;

如果这样做,您可以使用[[UIScreen mainScreen] applicationFrame]指定视图的框架;如果存在标签栏,它将自动调整大小。

如果您的视图有NIB,则Interface Builder会自动设置autoresizingMask。

马库斯

如果您可以了解如何调整UITabBar的大小,那么您可以调整UITabBarController的UITabBar的大小。您可以通过

访问该对象
[[UITabBarController subviews] objectAtIndex:0]

但是在文档中建议您不要直接访问该对象。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top