zoukankan      html  css  js  c++  java
  • 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小于或者大于某一个值,则执行某个操作

  • 相关阅读:
    swiper把左右箭头放到外侧
    vue复制地址栏链接:clipboard
    移动端适配rem.js
    vue登录弹框
    vue使用vue-aplayer(还用了SiriWave波形动画插件)
    vue 锚点定位,并平滑过渡
    vue引入scss报错:scss版本太高
    Kylin |3.Cube的优化
    Kylin |2.ModuleProject
    算法| 高级动态规划
  • 原文地址:https://www.cnblogs.com/gatsbywang/p/5504285.html
Copyright © 2011-2022 走看看