滑动隐藏tabBar

    xiaoxiao2021-04-17  45

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

    @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:0isKindOfClass:[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 mainScreenbounds].size.height-self.tabBarController.tabBar.frame.size.height;

        }

        

        [UIView animateWithDuration:0.5f animations:^{

            self.tabBarController.tabBar.frame=tabRect;

        }completion:^(BOOL finished) {

            

        }];

        

    }

    转载请注明原文地址: https://ju.6miu.com/read-674135.html

    最新回复(0)