当应用平稳运行时,如何测试UIActivityIndi​​catorView是否在旋转?

时间:2019-04-19 15:01:14

标签: ios swift uiactivityindicatorview

我的问题是,因为该应用运行流畅,所以您看不到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 个答案:

答案 0 :(得分:1)

您可以使用以下任一方法人为地为nextQuestion()添加延迟:

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

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

延迟将使您看到计时器旋转。更好的方法是将服务层隐藏在协议后面,然后可以有一个模拟服务层,该服务层在延迟或出现错误后返回样本数据。这使您可以测试诸如加载动画以及错误处理之类的事情。

答案 1 :(得分:0)

只是为了检查它是否正常工作,您可以在activityindicator开始设置动画的那一行使用断点 您还可以使用计时器

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