向上拖动时取消 UIRefreshControl

Posted

技术标签:

【中文标题】向上拖动时取消 UIRefreshControl【英文标题】:Cancel UIRefreshControl when dragged up 【发布时间】:2013-05-02 17:20:05 【问题描述】:

进行刷新时,(下拉后动作轮正在旋转), 我希望能够取消刷新 - 就像 Facebook 应用程序一样。

下拉刷新,虽然还没有完成,但如果我向上拉以使微调器不在我的视野范围内,我会停止/取消刷新。

我尝试检查 scrollViewDidScroll 以检查第一个可见行,但操作并不顺利。

关于如何实现这个有更好的想法吗?

提前致谢!

【问题讨论】:

【参考方案1】:

实际上,刚刚想通了。希望它可以帮助一些:)

开始刷新时,设置某种标志(这里是“刷新”), 并简单地检查 1. 刷新状态 2. 检测 contentOffset 是否被清零。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
    //NSLog(@"%f",[self.tableView contentOffset].y);
    if(refreshing)
        if([self.tableView contentOffset].y >= 0)
            refreshing = NO;
            [self.refreshControl endRefreshing];

        
    

【讨论】:

【参考方案2】:

要添加到您的解决方案中,您可以使用内部标志来检查它当前是否正在重新冻结

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
if (self.refreshControl.refreshing)
    [self.refreshControl endRefreshing];


【讨论】:

以上是关于向上拖动时取消 UIRefreshControl的主要内容,如果未能解决你的问题,请参考以下文章

Android:向上滚动时显示工具栏(向上拖动),向下滚动时隐藏(向下拖动)

使用 ItemTouchHelper 时如何在拖动时取消对 RecyclerView 中项目的拖动?

React-DnD - 当顶部有固定元素时将元素拖动到屏幕顶部不会向上滚动页面

退出鼠标区域时无法取消拖动

使用 jQuery Sortables 拖动项目时单选按钮被取消选择

拖动时的“上拉”动画