我正在开发一个iOS应用程序,其中我有一个需要在命令时刷新的UITableView。我添加了一个UIRefreshControl对象并将一个函数连接到它,这样每当我向下拖动表视图时,我的刷新代码就应该发生了。代码片段如下:
@IBAction func refresh(sender: UIRefreshControl?) {
self.tableView.setContentOffset(CGPointMake(0, self.tableView.contentOffset.y-self.refreshControl!.frame.size.height), animated: true)
sender?.beginRefreshing()
if (profileActivated) {
self.matches = []
let dynamoDBObjectMapper = AWSDynamoDBObjectMapper.defaultDynamoDBObjectMapper()
let queryExpression = AWSDynamoDBScanExpression()
queryExpression.limit = 100;
// retrieving everything
dynamoDBObjectMapper.scan(DDBMatch.self, expression: queryExpression).continueWithBlock({ (task:AWSTask!) -> AnyObject! in
if task.result != nil {
let paginatedOutput = task.result as! AWSDynamoDBPaginatedOutput
//adding all to the matches array
for item in paginatedOutput.items as! [DDBMatch] {
self.matches.append(item)
}
//code to filter and sort the matches array...
self.tableView.reloadData()
}
return nil
})
self.tableView.reloadData()
}
sender?.endRefreshing()
self.tableView.setContentOffset(CGPointMake(0, self.tableView.contentOffset.y - (0.5*self.refreshControl!.frame.size.height)), animated: true)
}
不幸的是,这段代码不太正常。每当我向下拖动刷新控件时,我的表会填充,但会立即消失,然后在大约10-15秒后刷新。我插入了一些打印语句,数据就在那里,它只是很长时间没有出现,而且我很难在检索到它时立即出现。我是iOS编程的新手,所以任何帮助都会受到赞赏。
提前致谢