检测TableView拖拽和滚动方向

作者: botherbox | 来源:发表于2015-07-24 15:03 被阅读3909次
    @interface OLiEventInfoController () <UITableViewDelegate>
    {
        CGFloat contentOffsetY;
        CGFloat oldContentOffsetY;
        CGFloat newContentOffsetY;
    }
    
    
    // 开始拖拽
    - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
    {
        NSLog(@"++开始拖拽");
        contentOffsetY = scrollView.contentOffset.y;
    }
    
    // 滚动时调用此方法(手指离开屏幕后)
    - (void)scrollViewDidScroll:(UIScrollView *)scrollView
    {
        //NSLog(@"scrollView.contentOffset:%f, %f", scrollView.contentOffset.x, scrollView.contentOffset.y);
        newContentOffsetY = scrollView.contentOffset.y;
        if (newContentOffsetY > oldContentOffsetY && oldContentOffsetY > contentOffsetY) { // 向上滚动
            OLiLog(@"up");
        } else if (newContentOffsetY < oldContentOffsetY && oldContentOffsetY < contentOffsetY) {// 向下滚动
            OLiLog(@"down");
        } else {
    //        NSLog(@"dragging");
        }
        if (scrollView.dragging) { // 拖拽
    //        NSLog(@"scrollView.dragging");
    //        NSLog(@"contentOffsetY: %f", contentOffsetY);
    //        NSLog(@"newContentOffsetY: %f", scrollView.contentOffset.y);
            if ((scrollView.contentOffset.y - contentOffsetY) > 5.0f) {  // 向上拖拽
                OLiLog(@"向上拖拽");
                
                // 隐藏导航栏和选项栏
                // [self layoutView];
    //            [self.navigationController setNa。vigationBarHidden:YES animated:YES];
    //            [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
    //            [self.navigationController setToolbarHidden:YES animated:YES];
    //            _viewController.tabBarController.tabBar.hidden =YES;
            }
            else if ((contentOffsetY - scrollView.contentOffset.y) > 5.0f)
            {   // 向下拖拽
                OLiLog(@"--向下拖拽");
                // 显示导航栏和选项栏
                //[self layoutView];
    //            [self.navigationController setNavigationBarHidden:NO animated:YES];
    //            [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
    //            [self.navigationController setToolbarHidden:NO animated:YES];
    //            self.navigationController.tabBarController.tabBar.hidden =NO;
                
            } else {
                
            }
        }
    }
    
    // 完成拖拽(滚动停止时调用此方法,手指离开屏幕前)
    - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
    {
        // NSLog(@"scrollViewDidEndDragging");
        oldContentOffsetY = scrollView.contentOffset.y;
        OLiLog(@"停止拖拽");
    }
    

    相关文章

      网友评论

        本文标题:检测TableView拖拽和滚动方向

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