隐藏tabbar和显示tabbar

施慈
2023-12-01

//隐藏tabbar

- (void)hideTabBar {

    if (self.tabBarController.tabBar.hidden == YES) {

        return;

    }

    UIView *contentView;

    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];

    contentView.frame = CGRectMake(contentView.bounds.origin.x,  contentView.bounds.origin.y,  contentView.bounds.size.width, contentView.bounds.size.height + self.tabBarController.tabBar.frame.size.height);

    self.tabBarController.tabBar.hidden = YES;

}

//显示tabbar

- (void)showTabBar

{

    if (self.tabBarController.tabBar.hidden == NO)

    {

        return;

    }

    UIView *contentView;

    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];

    contentView.frame = CGRectMake(contentView.bounds.origin.x, contentView.bounds.origin.y,  contentView.bounds.size.width, contentView.bounds.size.height - self.tabBarController.tabBar.frame.size.height);

    self.tabBarController.tabBar.hidden = NO;   

}

这样,就可以调用了

-(void)viewWillAppear:(BOOL)animated

{

    [self hideTabBar];

}


-(void)viewWillDisappear:(BOOL)animated

{

    [self showTabBar];

}



 类似资料: