UIRefreshControl мигает, и переходы резкие - PullRequest
0 голосов
/ 28 декабря 2018

Я бы хотел настроить 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, потому что что-то подобное не должно происходить в первую очередь, я обновлю этот посткогда они вернутся ко мне.

...