Индикатор активности не вращается при извлечении табличного представления для обновления в Xcode с использованием Swift

#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() }