Как проверить, вращается ли UIActivityIndicatorView, когда приложение работает нормально? - PullRequest
0 голосов
/ 19 апреля 2019

Моя проблема в том, что вы не видите UIActivityIndicatorView, потому что приложение работает нормально, поэтому я не уверен, что код правильный.

Вот все, что упоминает:

@IBOutlet weak var questionLabel: UILabel!
@IBOutlet weak var scoreLabel: UILabel!
@IBOutlet var progressBar: UIView!
@IBOutlet weak var progressLabel: UILabel!
@IBOutlet weak var loadingIndicator: UIActivityIndicatorView!

override func viewDidLoad() {
    super.viewDidLoad()
    loadingIndicator.hidesWhenStopped.toggle()
    nextQuestion()
}

func startOver() {
    loadingIndicator.startAnimating()
    questionNumber = 0
    score = 0
    nextQuestion()
}

func nextQuestion() {
    updateUI()
    loadingIndicator.stopAnimating()
    if questionNumber <= 12 {

func updateUI() {

        scoreLabel.text = "Score: \(score)"

        progressBar.frame.size.width = (view.frame.size.width / 13) * CGFloat(questionNumber)


    }

Это не код по порядку и не все.

Ответы [ 2 ]

1 голос
/ 19 апреля 2019

Вы можете искусственно добавить задержку к nextQuestion() с помощью:

Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { [weak self] _ in
    self?.nextQuestion()
}

или

DispatchQueue.main.asyncAfter(deadline: .now() + 1) { [weak self] in
    self?.nextQuestion()
}

Задержка позволит вам увидеть вращение таймера.Лучший подход - спрятать ваш уровень обслуживания за протоколом, тогда у вас может быть фиктивный уровень обслуживания, который возвращает образцы данных после задержки или ошибок.Это позволяет вам тестировать такие вещи, как загрузка анимации и обработка ошибок.

0 голосов
/ 19 апреля 2019

просто чтобы проверить, работает ли он, вы можете использовать точку останова на первой строке анимации активности, вы также можете использовать таймер

Timer.scheduledTimer(withTimeInterval: 5, repeat: false){ (timer) in
//start animating here 
}
...