设置滑动TabBar的显示和隐藏

代码如下:

//设置滑动的判定范围
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
    // 上滑动隐藏TabBar,上滑值越来越小,下滑动越来越大
    if (self.historyY+20<targetContentOffset->y)
    {
        [self setTabBarHidden:YES];
    }
    else if(self.historyY-20>targetContentOffset->y)
    {
        
        [self setTabBarHidden:NO];
    }
    self.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) { }]; }
原文地址:https://www.cnblogs.com/pengsi/p/7903066.html