私の問題は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)
}
これは正常ではありません。
次のnextQuestion()
いずれかを使用して、人為的に遅延を追加できます。
Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { [weak self] _ in
self?.nextQuestion()
}
または
DispatchQueue.main.asyncAfter(deadline: .now() + 1) { [weak self] in
self?.nextQuestion()
}
遅延により、タイマーが回転しているのを確認できます。より良いアプローチは、プロトコルの背後にサービスレイヤーを隠すことです。そうすれば、遅延またはエラーの後にサンプルデータを返すモックサービスレイヤーを作成できます。これにより、アニメーションの読み込みやエラー処理などをテストできます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加