NVActivityIndicatorView не работает при нажатии кнопки - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть следующий код для кнопки в моем приложении, чтобы проверить мою реализацию NVActivityIndicatorView :

@IBAction func goButtonPressed(_ sender: Any) {
    self.startAnimatingActivityIndicator()
    sleep(2)
    self.stopAnimatingActivityIndicator()
}

Контроллеры представления в моем приложении также имеют это расширение:

extension UIViewController: NVActivityIndicatorViewable {
    func startAnimatingActivityIndicator() {
        let width = self.view.bounds.width / 3
        let height = width
        let size = CGSize(width: width, height: height)
        startAnimating(size, message: "Loading...", type: NVActivityIndicatorType.circleStrokeSpin)
    }

    func stopAnimatingActivityIndicator() {
        self.stopAnimating()
    }
}

Анимации загрузки работают в другом месте в том же контроллере представления (т. Е. Функция viewDidLoad()), но по какой-то причине я не могу заставить анимацию загрузки работать с этой кнопкой.Кнопка подключена правильно, так как приложение спит в течение соответствующего времени, но анимация загрузки не запускается.

Заранее спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Индикатор не будет вращаться, потому что основной поток спит.Вместо этого используйте 2-секундный таймер, чтобы отключить вращение.

0 голосов
/ 06 февраля 2019

@ FryAnEgg приходит с решением!sleep(2) препятствовал запуску анимации загрузки.

Вот мой обновленный код:

@IBAction func goButtonPressed(_ sender: Any) {
    self.startAnimatingActivityIndicator()

    DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 2) {
        self.stopAnimatingActivityIndicator()
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...