iOS瘋狂詳解之UIScrollerView滾動方向判斷

PushListView.h

@interface PushListView : UIView<UITableViewDelegate,UITableViewDataSource

{

      CGFloat contentOffsetY;

      CGFloat oldContentOffsetY;

      CGFloat newContentOffsetY;

}

...............................


PushListView.m


//開始拖拽視圖

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

{

    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) {  // 向上滾動

        

        NSLog(@"up");

        

    } else if (newContentOffsetY < oldContentOffsetY && oldContentOffsetY < contentOffsetY) { // 向下滾動

     

        NSLog(@"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) {  // 向上拖拽

            

            // 隱藏導航欄和選項欄

            // [self layoutView];

            [_viewController.navigationController setNavigationBarHidden:YES animated:YES];

            //[_viewController.navigationController setToolbarHidden:!hidden animated:YES];

            _viewController.tabBarController.tabBar.hidden = YES;

            

        } else if ((contentOffsetY - scrollView.contentOffset.y) > 5.0f) {   // 向下拖拽

        

            // 顯示導航欄和選項欄

            //[self layoutView];

            

            [_viewController.navigationController setNavigationBarHidden:NO animated:YES];

            //[_viewController.navigationController setToolbarHidden:NO animated:YES];

            _viewController.tabBarController.tabBar.hidden = NO;

            

        } else {

            

        }

    }

}

// 完成拖拽(滾動停止時調用此方法,手指離開屏幕前)

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate

{

    // NSLog(@"scrollViewDidEndDragging");

    oldContentOffsetY = scrollView.contentOffset.y;

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章