ios 中如何应对UIScrollView快速滑动(暴力用户,暴力测试)
1.实现UIScrollViewDelegate
开始滑动:
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
滑动过程:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
滑动结束:
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
注意:无伦用户如何滑动scrollView,只要有滑动,就会调scrollViewWillBeginDecelerating,只有scrollView当加速度停止之后,才会调用scrollViewDidEndDecelerating
2.有了以上条件,就为限制加载提供了实现方式
首先,定义一个有计数功能的变量,如int yesToLoad,初始化为0
然后,在scrollViewWillBeginDecelerating函数中让yesToLoad+=1,在scrollViewDidScroll中判断yesToLoad是否等于1,如果不等,则表明用户快速滑动了scrollView
最后,在scrollViewDidScroll将yesToLoad置为0,以便下一次测试用户是否暴力而这个判断也可以用在scrollViewDidScroll,如果yesToLoad不等于1,则执行你需要的函数
3.在实际应用过程中,就以上两个条件,会存在一个小小的bug,比如用户连续的来回滑动,或都小小的滑动加点击,这样屏幕会闪,于是再加上一个判断条件
moveLeng = 0;(初始化)
在- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView,最后让moveLeng等于滑动偏移量
moveLeng = scrollView.contentOffset.x;
在2判定的加上与,如果scrollView.contentOffset.x-moveLeng小于或者大于某一个值,则执行某个操作