查看加载时将标签栏移出屏幕(仅限某些视图)

时间:2012-05-25 03:31:33

标签: iphone ios ios5 xcode4.3

我现在花了3个小时,这让我非常恼火。 我需要隐藏某些视图的tabbar并将其恢复给其他人。 我一直在尝试

self.hidesBottomBarWhenPushed = TRUE;

没有成功。 (因为有些观点我必须POP离开屏幕,而且只适用于PUSH及其即使它看起来似乎没有正常工作)

所以我想知道我是否可以以某种方式将标签栏的“框架”移动到屏幕视图下方,然后在需要时将其重新启动,即使动画也不错?

2 个答案:

答案 0 :(得分:0)

答案可能更令人恼火。如果你在讨论tabbarcontroller拥有的tabbar你不能。有一些技巧你可以移动它,但不幸的是视图没有正确调整大小。唯一的方法是使用tabbar delegate ptotocol创建自己的类似tabbarcontroller。也许在ios5中他们改变了一些东西,但是当我在ios4中尝试时,我发现了更快的创建我自己的标签栏控制器。

答案 1 :(得分:0)

使用此代码

- (void) hidetabbar {

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.5];

    for(UIView *view in appDelegate.objtabbar.view.subviews)
    {
        NSLog(@"%@", view);

        if([view isKindOfClass:[UITabBar class]]||[view isKindOfClass:[UIButton class]]||[view isKindOfClass:[UIImageView class]])
        {
            if (hiddenTabBar) {
                [view setFrame:CGRectMake(view.frame.origin.x, 431, view.frame.size.width, view.frame.size.height)];
            } else {
                [view setFrame:CGRectMake(view.frame.origin.x, 480, view.frame.size.width, view.frame.size.height)];
            }
        } else {
            if (hiddenTabBar) {
                [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 431)];
            } else {
                [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 480)];
            }
        }
    }
    [UIView commitAnimations];

    hiddenTabBar = !hiddenTabBar;
}