【问题标题】:iOS7 can not hide tabbar, black bariOS7不能隐藏tabbar、黑条
【发布时间】:2013-11-20 09:36:53
【问题描述】:

我想在滚动集合视图时隐藏我的标签栏,代码是

 #pragma mark - UIScrollViewDelegate
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{
    [self makeTabBarHidden:YES];
}

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    [self makeTabBarHidden:NO];
}

- (void)makeTabBarHidden:(BOOL)hide
{
    if ( [self.tabBarController.view.subviews count] < 2 )
    {
        return;
    }
    UIView *contentView;
    UIView *bradeView = [self.tabBarController.view.subviews objectAtIndex:2];

    if ( [[self.tabBarController.view.subviews objectAtIndex:0] 
             isKindOfClass:[UITabBar class]] )
    {
        contentView = [self.tabBarController.view.subviews objectAtIndex:1];
    }
    else
    {
        contentView = [self.tabBarController.view.subviews objectAtIndex:0];
    }
    //    [UIView beginAnimations:@"TabbarHide" context:nil];
    if ( hide )
    {
        contentView.frame = self.tabBarController.view.bounds;
    }
    else
    {
        contentView.frame = CGRectMake(self.tabBarController.view.bounds.origin.x,
                                 self.tabBarController.view.bounds.origin.y,
                                 self.tabBarController.view.bounds.size.width,
                                 self.tabBarController.view.bounds.size.height -
                                    self.tabBarController.tabBar.frame.size.height);
    }

    self.tabBarController.tabBar.hidden = hide;
    bradeView.hidden = hide;
}

但在 iOS7 中,当标签栏被隐藏时,有一个不会关闭的黑条。 iOS7如何隐藏标签栏?

【问题讨论】:

    标签: ios objective-c ios7 hidden tabbar


    【解决方案1】:

    在情节提要中,选择要为其隐藏标签栏的视图控制器,转到属性检查器,然后在视图控制器部分 > 扩展边缘中选择底部栏下方的复选框。

    如果您的栏是不透明的,请同时选择 Under Opaque Bars。

    【讨论】:

      【解决方案2】:

      使用这个

      -(void)viewWillAppear:(BOOL)animated
          {
              [self.navigationController setNavigationBarHidden:YES animated:animated];
              [self setHidesBottomBarWhenPushed:YES];
              [super viewWillApper:animated];
          }
      
      
              enter code here
      
          -(void)viewWillDisappear:(BOOL)animated
          {
              [self.navigationController setNavigationBarHidden:NO animated:animated];
              [self setHidesBottomBarWhenPushed:NO];
              [super viewWillDisapper:animated];
          }
      

      【讨论】:

        【解决方案3】:

        最佳答案,在 viewDidLoad 调用以下方法并执行@tufyx 推荐的操作!祝你好运

        - (void)hideTabBar:(UITabBarController *)tabbarcontroller
        {
            [tabbarcontroller.tabBar setHidden:YES];
            UIView *contentView;
            if ([[self.tableView.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]]) {
                contentView = [self.tableView.subviews objectAtIndex:1];
            } else {
                contentView = [self.tableView.subviews objectAtIndex:0];
            }
            contentView.frame = self.tableView.bounds;
        }
        

        【讨论】:

          【解决方案4】:

          如果您像我一样使用 segues,那么您应该在推送之前设置视图控制器属性。这是一个快速的例子:

          override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
              if segue.identifier == "YOUR_SEGUE_NAME" {
                  let targetVC = segue.destinationViewController as! YOUR_VIEW_CONTROLLER
                  targetVC.hidesBottomBarWhenPushed = true
          
              }
          

          【讨论】:

            猜你喜欢
            • 2013-10-14
            • 2011-08-17
            • 1970-01-01
            • 2021-06-04
            • 1970-01-01
            • 1970-01-01
            • 2013-11-08
            • 2017-01-28
            • 1970-01-01
            相关资源
            最近更新 更多