Activity 指标忽略延迟函数
Activity indicator ignores delay function
这是显示activity indicator
的函数
func showActivityIndicator() {
let container: UIView = UIView()
container.frame = CGRect(x: 0, y: 0, width: 80, height: 80)
container.backgroundColor = .clear
activityView.center = self.view.center
container.addSubview(activityView)
self.view.addSubview(container)
activityView.startAnimating()
}
这是delay
函数,参数应该是秒数:
func delay(_ delay: TimeInterval, callback: @escaping ()->()) {
let delay = delay * Double(NSEC_PER_SEC)
let popTime = DispatchTime.now() + Double(Int64(delay)) / Double(NSEC_PER_SEC);
DispatchQueue.main.asyncAfter(deadline: popTime, execute: {
callback()
})
}
这是调用这两个函数的地方:
showActivityIndicator()
delay(3) {
self.activityView.stopAnimating()
}
let alert = UIAlertController(title: "Success", message: "Thanks", preferredStyle: .alert)
let action = UIAlertAction(title: "OK", style: .default, handler: {(alert: UIAlertAction!) in self.displayHomeVC()})
alert.addAction(action)
所以我的愿望是显示 activity 指示器 3 秒,然后显示警报。
问题: Activity 指示器在片刻后消失并出现警报。有人知道为什么吗?
首先,@Paulw11 和@matt 说的是真的,您应该调查一下。
修复后您会遇到一个不同的问题,警报不是您回调的一部分。
您应该将警报放在 "delay" func 回调中,如下所示:
delay(3) {
self.activityView.stopAnimating()
let alert = UIAlertController(title: "Success", message: "Thanks", preferredStyle: .alert)
let action = UIAlertAction(title: "OK", style: .default, handler: {(alert: UIAlertAction!) in self.displayHomeVC()})
alert.addAction(action)
}
这是显示activity indicator
func showActivityIndicator() {
let container: UIView = UIView()
container.frame = CGRect(x: 0, y: 0, width: 80, height: 80)
container.backgroundColor = .clear
activityView.center = self.view.center
container.addSubview(activityView)
self.view.addSubview(container)
activityView.startAnimating()
}
这是delay
函数,参数应该是秒数:
func delay(_ delay: TimeInterval, callback: @escaping ()->()) {
let delay = delay * Double(NSEC_PER_SEC)
let popTime = DispatchTime.now() + Double(Int64(delay)) / Double(NSEC_PER_SEC);
DispatchQueue.main.asyncAfter(deadline: popTime, execute: {
callback()
})
}
这是调用这两个函数的地方:
showActivityIndicator()
delay(3) {
self.activityView.stopAnimating()
}
let alert = UIAlertController(title: "Success", message: "Thanks", preferredStyle: .alert)
let action = UIAlertAction(title: "OK", style: .default, handler: {(alert: UIAlertAction!) in self.displayHomeVC()})
alert.addAction(action)
所以我的愿望是显示 activity 指示器 3 秒,然后显示警报。
问题: Activity 指示器在片刻后消失并出现警报。有人知道为什么吗?
首先,@Paulw11 和@matt 说的是真的,您应该调查一下。
修复后您会遇到一个不同的问题,警报不是您回调的一部分。 您应该将警报放在 "delay" func 回调中,如下所示:
delay(3) {
self.activityView.stopAnimating()
let alert = UIAlertController(title: "Success", message: "Thanks", preferredStyle: .alert)
let action = UIAlertAction(title: "OK", style: .default, handler: {(alert: UIAlertAction!) in self.displayHomeVC()})
alert.addAction(action)
}