【问题标题】:UIRefreshControl after 3 seconds endRefreshing3 秒后的 UIRefreshControl endRefreshing
【发布时间】:2016-04-28 12:12:51
【问题描述】:
我有一个使用UIRefreshControl 更新UITableView 的函数。但我希望它在 3 秒后调用函数 EndRefreshing。
func updateMyTable(){
tableView.reloadData()
//refreshTable.endRefreshing()
}
【问题讨论】:
标签:
ios
swift
uitableview
uirefreshcontrol
【解决方案1】:
我所知道的 swift 上最好的延迟方法:
func dispatchDelay(delay:Double, closure:()->()) {
dispatch_after(
dispatch_time(
DISPATCH_TIME_NOW,
Int64(delay * Double(NSEC_PER_SEC))
),
dispatch_get_main_queue(), closure)
}
您的代码将是:
func updateMyTable(){
tableView.reloadData()
dispatchDelay(3.0) {
self.refresh.endRefreshing()
}
}
更新切换 3:
func dispatchDelay(delay:Double, closure:@escaping ()->()) {
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + delay, execute: closure)
}
【解决方案2】:
尝试使用以下方法在延迟一段时间后调用该方法:
self.performSelector(Selector(yourMethod), withObject: nil, afterDelay: 3)
该方法将在 3 秒延迟后调用。所以在你更新表格的地方添加这一行。
希望对你有帮助..