美文网首页iOS开发
TableView点击的时候,让tabbar下移到消失,nav隐

TableView点击的时候,让tabbar下移到消失,nav隐

作者: BabyNeedCare | 来源:发表于2019-07-10 11:31 被阅读0次

    TableView点击的时候,让tabbar下移到消失,nav隐藏,停止滑动的时候tabbar和nav出现

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
        
        [tableView deselectRowAtIndexPath:indexPath animated:YES];
        
        if (_clickedCounter % 2 == 0){
            [UIView animateWithDuration:1 animations:^{
                self.tabBarController.tabBar.transform = CGAffineTransformMakeTranslation(0, 49);
                [UIView animateWithDuration:5 animations:^{
                    self.navigationController.navigationBar.alpha = 0;
                }];
            }];
        }else {
            
            [UIView animateWithDuration:1 animations:^{
                self.tabBarController.tabBar.transform = CGAffineTransformIdentity;
                self.navigationController.navigationBar.alpha = 1;
            }];
        }
        
        _clickedCounter++;
    }
    
    

    类似使用还有scrollView滑动页面的时候

    - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
        [UIView animateWithDuration:1 animations:^{
            self.tabBarController.tabBar.transform = CGAffineTransformMakeTranslation(0, 49);
            [UIView animateWithDuration:5 animations:^{
                self.navigationController.navigationBar.alpha = 0;
            }];
        }];
    }
    
    
    - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
        [UIView animateWithDuration:1 animations:^{
            self.tabBarController.tabBar.transform = CGAffineTransformIdentity;
            self.navigationController.navigationBar.alpha = 1;
        }];
    }
    
    
    
    

    更为推荐的是以下方法,可以在有scrollview, 或tableview的地方使用

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    
        CGPoint translation = [scrollView.panGestureRecognizer translationInView:scrollView.superview];
        
        if (translation.y>0) {
    
            [UIView animateWithDuration:0.3 animations:^{
                
                [self setTabBarHidden:NO];
                
                [self.navigationController setNavigationBarHidden:NO animated:YES];
                
                NSLog(@"Show");
                
            }];
        }else if(translation.y<0){
    
            [UIView animateWithDuration:0.3 animations:^{
                
                [self setTabBarHidden:YES];
                
                [self.navigationController setNavigationBarHidden:YES animated:YES];
                
                NSLog(@"Hide");
            }];
    
        }
    }
    
    
    //隐藏显示tabbar
    
    - (void)setTabBarHidden:(BOOL)hidden{
        
        UIView *tab = self.tabBarController.view;
        
        CGRect  tabRect=self.tabBarController.tabBar.frame;
        
        if ([tab.subviews count] < 2) {
            
            return;
            
        }
    
        UIView *view;
        
        if ([[tab.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]]) {
            
            view = [tab.subviews objectAtIndex:1];
            
        } else {
            
            view = [tab.subviews objectAtIndex:0];
            
        }
        
        
        if (hidden) {
            
            view.frame = tab.bounds;
            
            tabRect.origin.y=[[UIScreen mainScreen] bounds].size.height+self.tabBarController.tabBar.frame.size.height;
            
        } else {
            
            view.frame = CGRectMake(tab.bounds.origin.x, tab.bounds.origin.y, tab.bounds.size.width, tab.bounds.size.height);
            
            tabRect.origin.y=[[UIScreen mainScreen] bounds].size.height-self.tabBarController.tabBar.frame.size.height;
            
        }
        
        [UIView animateWithDuration:0.5f animations:^{
            
            self.tabBarController.tabBar.frame=tabRect;
            
        }completion:^(BOOL finished) {
     
        }];
    }

    相关文章

      网友评论

        本文标题:TableView点击的时候,让tabbar下移到消失,nav隐

        本文链接:https://www.haomeiwen.com/subject/qxickctx.html