自定义选项卡栏显示ScrollView

时间:2011-12-20 21:33:46

标签: iphone uiscrollview uitabbarcontroller custom-controls uitabbar

在我的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黑客来解决这个问题,或者您是否有更好的隐藏标签栏以消除此问题的方法?

1 个答案:

答案 0 :(得分:1)

只是一个想法,而不是隐藏原来的UITabBar为什么不用你的自定义UITabBar覆盖它?除非他们有不同的高度你应该没事。

要覆盖它,您必须将自定义标签栏作为子视图添加到主窗口。