使用Swift 3

时间:2016-11-24 12:32:30

标签: ios json swift swift3 alamofire

我正在使用Alamofire从网址(JSON)获取数据。我正在尝试将RefreshControl拉到我的项目中。我已经完成了,但不知道它是否正确或刷新时数据是否更新。我的代码是:

var refresh = UIRefreshControl()

refresh.addTarget(self, action: #selector(self.refreshData), for: UIControlEvents.valueChanged)

func refreshData() {

    Alamofire.request("https://www.example.com/api").responseJSON(completionHandler: {
        response in
        self.parseData(JSONData: response.data!)
        self.tableView.separatorStyle = UITableViewCellSeparatorStyle.singleLine

        self.tableView.reloadData()
        self.refresh.endRefreshing()


    })        
}

这是对的吗?

1 个答案:

答案 0 :(得分:2)

您运行正常,但需要重新加载tableView并在主线程上停止UIRefreshControl

DispatchQueue.main.async {
    self.tableView.reloadData()
    self.refresh.endRefreshing()             
}

注意:您需要使用separatorStyle或使用“界面”构建器将其设置为{},而不是始终在API请求中设置viewDidLoad