私のプロジェクトはまだSwift 2.3を使用しており、まだSwift 3に移行されていません。次のコードでテーブルビューをプルダウンすると、リフレッシュされたデータがデバッグ領域に表示されることが確認できますが、テーブルビューには反映されません。私はIOS 9とIOS 10の両方で試しました。UIRefreshControlが機能しません
var refreshControl = UIRefreshControl()
if #available(iOS 10.0, *) {
TableView.refreshControl = refreshControl
} else {
TableView.addSubview(refreshControl)
}
refreshControl.addTarget(self, action: #selector(self.handleRefresh), forControlEvents: UIControlEvents.ValueChanged)
func handleRefresh(refreshControl: UIRefreshControl) {
refreshControl.beginRefreshing()
Search()
TableView.reloadData()
refreshControl.endRefreshing()
}
にしている検索()関数の非同期ですか?もしそうなら、 'reloadData()'メソッドはsearch()が完了する前に実行されているかもしれません。非同期の場合、 'reloadData()'と 'endRefreshing'呼び出しをsearch()に移動し、検索が実際に実行を終了した時点でそれらが確実に実行されるようにしてください。 –