【发布时间】:2015-09-20 00:15:56
【问题描述】:
我很难完成 Pull to Refresh 的实现。
当我拉动刷新时,它只是添加了我已经拥有的相同数据。所以我将得到相同的数据,乘以 2。
viewDidLoad:
override func viewDidLoad() {
super.viewDidLoad()
self.refreshControl?.addTarget(self, action: "handleRefresh:", forControlEvents: UIControlEvents.ValueChanged)
let query = CKQuery(recordType: "Play", predicate: predicate)
publicData.performQuery(query, inZoneWithID: nil) { results, error in
if error == nil { // There is no error
for play in results! {
let newPlay = Play()
newPlay.color = play["Color"] as! String
self.objects.append(newPlay)
dispatch_async(dispatch_get_main_queue(), { () -> Void in
self.tableView.reloadData()
})
}
}
else {
print(error)
}
}
}
handleRefresh:
func handleRefresh(refreshControl: UIRefreshControl) {
let query = CKQuery(recordType: "Play", predicate: predicate)
publicData.performQuery(query, inZoneWithID: nil) { results, error in
if error == nil { // There is no error
for play in results! {
let newPlay = Play()
newPlay.color = play["Color"] as! String
self.objects.append(newPlay)
dispatch_async(dispatch_get_main_queue(), { () -> Void in
self.tableView.reloadData()
refreshControl.endRefreshing()
})
}
}
else {
print(error)
}
}
}
我开始想,也许是我需要在添加新的之前删除所有 objects,但不知何故,在 handleRefresh 函数中的 self.objects.append(newPlay) 之前添加这一行 self.objects.removeAll() 不起作用.
有什么想法吗?谢谢!
【问题讨论】:
标签: ios swift uitableview pull-to-refresh