我正在使用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()
})
}
这是对的吗?
答案 0 :(得分:2)
您运行正常,但需要重新加载tableView
并在主线程上停止UIRefreshControl
。
DispatchQueue.main.async {
self.tableView.reloadData()
self.refresh.endRefreshing()
}
注意:您需要使用separatorStyle
或使用“界面”构建器将其设置为{},而不是始终在API请求中设置viewDidLoad
。