刷新表格视图与UIRefreshControl在swift中

时间:2016-07-10 18:14:01

标签: ios swift uitableview cocoa-touch uirefreshcontrol

我正在开发一个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编程的新手,所以任何帮助都会受到赞赏。

提前致谢

0 个答案:

没有答案