长时间的监听器,第一次调用者在这里溢出。要温柔。

我正在UITableView上实现UIRefreshControl以刷新表的数据。在其他“从上到下”的实现方式中,刷新过程直到在拉动的刷新距离内用户的手指抬起后才开始。 UIRefreshControl似乎没有立即具有此自定义功能。

我的UIRefreshControl初始化代码:

UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
[self.tableView addSubview:refreshControl];

我的刷新:代码是相当基本的:
-(void)refresh:(id)sender {
(... refresh code ...)
[sender endRefreshing];
}

如何延迟刷新:功能,直到用户将手指从拉动中移开?

最佳答案

我也遇到了同样的问题。我认为我的方法不太好,但似乎可行。

  • 初始化UIRefreshControl
    UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
    self.refreshControl = refreshControl;
    
  • 用户完成拖动表格后检查UIRefreshControl的状态(UITableViewDelegate符合UIScrollViewDelegate)
    - (void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView
    {
        if( self.refreshControl.isRefreshing )
            [self refresh];
    }
    
  • 更新表
    - (void)refresh
    {
        [self.refreshControl endRefreshing];
    
        // TODO: Update here your items
    
        [self.tableView reloadData];
    }
    

  • 希望对您有帮助。

    关于iphone - UIRefreshControl-如何在释放触摸后使刷新 Action 发生?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15584104/

    10-12 21:31