美文网首页我喜欢的技术篇iOS111
iOS tableView滑动隐藏/显示tabbar

iOS tableView滑动隐藏/显示tabbar

作者: 上帝很忙 | 来源:发表于2016-09-28 10:21 被阅读916次

在需要滑动隐藏/显示的页面中:

@property(nonatomic,assign)CGFloat historyY;

#pragma mark Delegate

//设置滑动的判定范围
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
    if (historyY+20<targetContentOffset->y)
    {
        [self setTabBarHidden:YES];
    }
    else if(historyY-20>targetContentOffset->y)
    {
        
        [self setTabBarHidden:NO];
    }
    historyY=targetContentOffset->y;
}
//隐藏显示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) {
        
    }];
    
}

相关文章

网友评论

本文标题: iOS tableView滑动隐藏/显示tabbar

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