【问题标题】:Moving Tabbar off screen when View Loads (for certain views only)视图加载时将标签栏移出屏幕(仅适用于某些视图)
【发布时间】:2012-05-25 03:31:33
【问题描述】:

我现在花了 3 个小时在这上面,这真的让我很恼火。 我需要为某些视图隐藏标签栏并将其带回给其他视图。 我一直在努力

self.hidesBottomBarWhenPushed = TRUE;

没有成功。 (因为某些视图我必须在屏幕外 POP 并且仅适用于 PUSH,甚至它似乎无法正常工作)

所以我想知道是否可以以某种方式将标签栏的“框架”移动到屏幕视图的正下方,然后在需要时将其恢复,即使有动画也会很好?

【问题讨论】:

  • 试过this了吗?

标签: iphone ios ios5 xcode4.3


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    使用此代码

    - (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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多