【发布时间】:2017-06-30 15:51:30
【问题描述】:
我正在尝试设置拉动刷新功能。刷新工作正常。 我按以下方式设置了 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 函数?
【问题讨论】:
-
你使用 UITableViewController 吗?
-
是的,我使用 TableViewController
-
你执行主队列中的代码吗?
-
@GaétanZ 我正在考虑这个问题。所以你的意思是它有可能重新加载表格视图以快速?
-
其实我不是很理解你的问题。但是不在主队列上执行 UI 代码会导致不可预知的行为。在获取数据后忘记调度异步是很常见的。
标签: swift uitableview uirefreshcontrol