关于scrollView禁止惯性滑动与UIScrollView左右滚动判断

能旭
2023-12-01

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    if (decelerate)
    {
        dispatch_async(dispatch_get_main_queue(), ^{
            printf("STOP IT!!\n");
            [scrollView setContentOffset:scrollView.contentOffset animated:NO];
        }); 
    }

}


工作需要,需要实现UIScrollView左右拖动加载,

首先设置pageEnable=YES;

然后通过Delegate实现相关方法。

//将要开始拖拽,手指已经放在view上并准备拖动的那一刻

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{    //拖动前的起始坐标

    startContentOffsetX = scrollView.contentOffset.x;

}

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{    //将要停止前的坐标

    willEndContentOffsetX = scrollView.contentOffset.x;

}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{

    endContentOffsetX = scrollView.contentOffset.x;

    if (endContentOffsetX < willEndContentOffsetX && willEndContentOffsetX < startContentOffsetX) { //画面从右往左移动,前一页

    } else if (endContentOffsetX > willEndContentOffsetX && willEndContentOffsetX > startContentOffsetX) {//画面从左往右移动,后一页

    }

}

如上可判断ScrollView是左移了还是右移了



 类似资料: