当应用程序流畅运行时,您如何测试 UIActivityIndicatorView 是否在旋转?
How do you test to see if UIActivityIndicatorView is spinning when the app runs smoothly?
我的问题是你看不到 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)
}
顺序不对。
只是为了检查它是否正常工作,您可以在 activityindicator 开始动画的那一行使用断点
你也可以使用计时器
Timer.scheduledTimer(withTimeInterval: 5, repeat: false){ (timer) in
//start animating here
}
您可以人为地为 nextQuestion()
添加延迟:
Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { [weak self] _ in
self?.nextQuestion()
}
或
DispatchQueue.main.asyncAfter(deadline: .now() + 1) { [weak self] in
self?.nextQuestion()
}
延迟会让您看到计时器在转动。更好的方法是将您的服务层隐藏在协议后面,然后您可以拥有一个模拟服务层,该服务层 returns 在延迟或出错后对数据进行采样。这使您可以测试诸如加载动画和错误处理之类的东西。
我的问题是你看不到 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)
}
顺序不对。
只是为了检查它是否正常工作,您可以在 activityindicator 开始动画的那一行使用断点 你也可以使用计时器
Timer.scheduledTimer(withTimeInterval: 5, repeat: false){ (timer) in
//start animating here
}
您可以人为地为 nextQuestion()
添加延迟:
Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { [weak self] _ in
self?.nextQuestion()
}
或
DispatchQueue.main.asyncAfter(deadline: .now() + 1) { [weak self] in
self?.nextQuestion()
}
延迟会让您看到计时器在转动。更好的方法是将您的服务层隐藏在协议后面,然后您可以拥有一个模拟服务层,该服务层 returns 在延迟或出错后对数据进行采样。这使您可以测试诸如加载动画和错误处理之类的东西。