Я использую refre sh контроллер. Это хорошо работает, когда я нажимаю на элемент панели вкладок после полного завершения анимации refre sh. Но если я коснусь элемента панели очень быстро до завершения анимации, он будет завис Я пытаюсь использовать refreshControl.endRefreshing () в viewDidApper. Я также пытаюсь использовать refreshControl.endRefreshing () в viewWillDisappear. Эта ошибка все еще случается. Ниже приведены мой код и снимок.
снимок: https://imgur.com/a/UNvQbA8
демонстрационное видео: https://youtu.be/cZMurwiwfjI
let refreshControl: UIRefreshControl = UIRefreshControl()
@IBOutlet weak var myScrollView: UIScrollView!
@IBOutlet weak var noDataView: UIView!
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
tableView.register(UINib.init(nibName: "MessageListCell", bundle: nil), forCellReuseIdentifier: "MessageListCell")
tableView.delegate = self
tableView.dataSource = self
refreshControl.addTarget(self, action: #selector(refresh), for: UIControl.Event.valueChanged)
self.tableView.isHidden = true
self.myScrollView.isHidden = false
}
Я поставил здесь refreshControl.endRefreshing (). Кажется, не работает.
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
self.refreshControl.endRefreshing()
if !oneReload {
getList()
oneReload = true
}
}
Я также пытаюсь поставить refreshControl.endRefreshing () перед добавлением подпредставления. Это все еще не сработало.
private func getList(){
if self.viewData.count > 0{
self.tableView.addSubview(self.refreshControl)
self.tableView.isHidden = false
self.myScrollView.isHidden = true
self.tableView.reloadData()
}else{
self.myScrollView.addSubview(self.refreshControl)
self.myScrollView.isHidden = false
self.tableView.isHidden = true
}
}
@objc func refresh(){
refreshControl.endRefreshing()
self.getList()
}
Я думаю, что это произойдет, потому что контроллер представления был заморожен перед изменением выбранного вида панели вкладок. В следующий раз я вернусь к представлению. Это шоу с анимацией замораживания. Могу ли я решить эту проблему? Пожалуйста помоги. Спасибо.