向上拖动时取消 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 - 当顶部有固定元素时将元素拖动到屏幕顶部不会向上滚动页面