Я бы хотел настроить UIRefreshControl в главном контроллере табличного представления моих приложений, чтобы активировать функцию обновления, чтобы (вы, наверное, уже догадались) обновить ее.
Добавление этого не проблемаЯ могу настроить его через раскадровку (включив обновление) или в контроллере (используя self.refreshControl = UIRefreshControl()
).
Когда он запускается пользователем, он начинает нормально обновляться, но когда явызвать его через self.refreshControl.beginRefreshing()
элемент управления не отображается на навигационной панели, пока я не прокрутите вниз (как вы обычно это делаете)
Но это даже не самая странная часть.Когда он, наконец, становится видимым для пользователя, он постоянно мигает и через некоторое время его вообще не видно.
Для метода self.refreshControl.endRefreshing()
анимация действительно прерывистая и прерывистая, а иногда и панель навигации не отображается.больше не прокручивайте вверх (оставляя пустое место сверху)
Вот рисунок, который должен обобщить моя проблема
Я использую Swift 4.2, приложение былопротестирован на разных симуляторах (под управлением iOS 12.1) и на моем iPhone X (под управлением iOS 12.1.2), а целью релиза является iOS 10.0.
Я уже провел исследование по моей проблеме, но, похоже, никто не смогточная проблема (по крайней мере мерцание) или решения не работают для меня.
Вот как настроен мой контроллер вида:
class MyViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.refreshControl = UIRefreshControl()
self.refreshControl?.addTarget(self, action: #selector(reload), for: .valueChanged)
self.refreshControl.beginRefreshing()
}
@objc func reload() {
DispatchQueue(label: "update").async {
sleep(10)
DispatchQueue.main.async {
self.refreshControl?.endRefreshing()
}
}
}
}
Спасибо за чтение, я действительнонадеюсь, что кто-нибудь сможет мне помочь.
Обновление
Я только что обнаружил, что проблема возникает только с непрозрачной панелью навигации с большим заголовком, поэтому вместо полупрозрачной панели навигации выберитенепрозрачное решение (к сожалению, не то, с которым мне хотелось бы жить).Может быть, у кого-то есть подход к функциональному управлению обновлением с непрозрачной панелью навигации.
Кроме того, я отправил отчет об ошибке в Apple, потому что что-то подобное не должно происходить в первую очередь, я обновлю этот посткогда они вернутся ко мне.