在我的iPhone应用程序中,我实现了一个自定义标签栏,功能完美,没有任何问题。但是,我遇到了一个问题:基本上我的自定义标签栏实际上并不控制标签栏视图,它只是标示基础标准UITabBarController
它应该setSelectedIndex:1
等等。它是基本上只有一个可视的自定义标签栏,后面没有任何逻辑。因此,我需要隐藏执行幕后所有脏工作的基础标准UITabBar
。
我与朋友Google发现的最常见的事情是人们使用此代码来隐藏标签栏:
for(UIView *view in tabbarcontroller.view.subviews)
{
if([view isKindOfClass:[AppTabBarController_iPhone class]])
{
[view setFrame:CGRectMake(view.frame.origin.x, 480, view.frame.size.width, view.frame.size.height)];
}
else
{
[view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 480)];
}
}
实际上,这确实推动标签栏看不见,但它在任何滚动视图中都带来了另一个问题:每个滚动视图的背景图像重复了44个像素(即标签栏的高度已经过了向下移动)这样可以带来真正难看的体验。
我是否可以通过某种setFrame
黑客来解决这个问题,或者您是否有更好的隐藏标签栏以消除此问题的方法?
答案 0 :(得分:1)
只是一个想法,而不是隐藏原来的UITabBar为什么不用你的自定义UITabBar覆盖它?除非他们有不同的高度你应该没事。
要覆盖它,您必须将自定义标签栏作为子视图添加到主窗口。