#ios #swift #xcode
#iOS #swift #xcode
Вопрос:
Я написал код для обновления ViewController при каждом извлечении TableView. Но всякий раз, когда я извлекаю TableView для обновления страницы, отображается индикатор активности, но он не вращается. Был бы признателен, если бы кто-нибудь мог помочь мне с этой проблемой? Спасибо за помощь!
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
var refreshControl = UIRefreshControl()
override func viewDidLoad() {
super.viewDidLoad()
self.refreshControl.addTarget(self, action: #selector(refresh), for: UIControl.Event.valueChanged)
tableView.addSubview(refreshControl)
}
@objc func refresh(_ sender: AnyObject) {
// Code to refresh table view
loadData()
refreshControl.endRefreshing()
}
}
Ответ №1:
Добавьте завершение loadData
, поскольку это асинхронный метод
loadData() {
self.refreshControl.endRefreshing()
}
С
func loadData(completion:@escaping(() -> ())) {
Api.load {
completion()
}
}
Комментарии:
1. Или, если вы просто тестируете, просто используйте
DispatchQueue.main.asyncAfter(deadline: .now() 0.5) { loadData() }