Swift UIRefreshControl不';不要清除桌面视图

Swift UIRefreshControl不';不要清除桌面视图,swift,uitableview,uirefreshcontrol,Swift,Uitableview,Uirefreshcontrol,我正在尝试设置一个拉刷新功能。刷新工作正常。 我按以下方式设置refreshControl: let refreshControlAnimation = UIRefreshControl() self.refreshControl?.addTarget(refreshControlAnimation, action: #selector(handleRefresh(refreshControl:)), for: UIControlEvents.valueChanged) self.tableVi

我正在尝试设置一个拉刷新功能。刷新工作正常。 我按以下方式设置refreshControl:

let refreshControlAnimation = UIRefreshControl()
self.refreshControl?.addTarget(refreshControlAnimation, action: #selector(handleRefresh(refreshControl:)), for: UIControlEvents.valueChanged)
self.tableView?.addSubview(refreshControlAnimation)
我设置了一个目标并执行handleRefresh函数

  func handleRefresh(refreshControl: UIRefreshControl) {
        DataController().fetchDataLive(mode: "get", completionHandler: { success in
            self.tableView.reloadData()
            refreshControl.endRefreshing()
        })

    }
然而,如果我拉刷新动画得到执行,但它没有在它应该结束的时间。正如您在图片上看到的,动画仍在节标题下执行。

但它应该尽快被清除,如图所示。


为什么我的endRefreshing函数没有尽快调用?

有您的问题。不应将刷新控件添加为子视图,因为swift已将其添加到tableview/TableViewController中

使用:-


有你的问题。不应将刷新控件添加为子视图,因为swift已将其添加到tableview/TableViewController中

使用:-


你使用UITableViewController吗?是的,我使用TableViewController你执行主队列中的代码吗?@GaétanZ我在考虑这个问题。那么你的意思是表视图有可能被重新加载到fast?实际上我对你的问题不是很了解。但不在主队列上执行UI代码可能会导致不可预测的行为。获取数据后很快就会忘记异步调度。是否使用UITableViewController?是的,我使用TableViewController在主队列中执行代码吗?@GaétanZ我正在考虑这个问题。那么你的意思是表视图有可能被重新加载到fast?实际上我对你的问题不是很了解。但不在主队列上执行UI代码可能会导致不可预测的行为。在获取数据之后,很快就会忘记异步调度。哦,是的,刚刚得到它。通过创建一个额外的变量解决了这个问题。但是你的版本也可以。一开始我不太明白它的概念。哦,是的,我刚知道。通过创建一个额外的变量解决了这个问题。但是你的版本也可以。一开始我不太理解它的概念。
self.tableView.refreshControl = yourRefreshControl