CoderMJLee / MJRefresh

An easy way to use pull-to-refresh.
MIT License
13.8k stars 3.55k forks source link

列表是否正在滚动的状态不对 #1617

Open FirstDKS521 opened 1 week ago

FirstDKS521 commented 1 week ago

小马哥你好,有个问题帮忙看下

描述bug 想要在列表中实现一个功能:如果列表正在滚动,则不更新页面数据 实现的代码如下

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    NSLog(@"~~~~ YES");
    self.isScrolling = YES;
}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    NSLog(@"~~~~ NO");
    self.isScrolling = NO;
}

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {
    NSLog(@"~~~~ NO1");
    self.isScrolling = NO;
}

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
    NSLog(@"~~~~ NO2");
    self.isScrolling = NO;
}

当下拉刷新结束后,上面的代理方法,会最后执行scrollViewDidScroll,导致获取的isScrolling = YES;而此时已经没有滚动了;这个问题应该怎么处理一下

必现/偶发? 必现

怎么样重现这个bug

  1. 显示哪个页面 可以直接在MJRefresh的Demo中,MJExampleViewController类里面,将上面的代码添加进去进行调试,必现;
  2. 点击哪个位置
  3. 滚动到哪个位置
  4. 发生了什么错误

你期望的结果是什么? 我期望在结束下拉刷新后,获取获取到到的isScrolling = NO;

截图 如果有必要的话,请上传几张截图

运行环境

额外的 最好能提供出现bug的Demo

FirstDKS521 commented 1 week ago

也可以直接下载我编写好的代码,运行后在Demo的首页,下拉刷新,控制台会打印Log,谢谢~ image MJRefresh-master.zip

FirstDKS521 commented 1 week ago

@wolfcon 小马哥 @CoderMJLee 帮忙看下这里,谢谢~