这个问题在这里已有答案:
首先,我使用arc4random创建了一个randomDelay值
然后我想将randomDelay值添加到DispatchQueue以创建随机时间延迟变量
这是我的代码:
func animation1() {
UIView.animate(withDuration: 1, animations: {
// various code
}, completion: { (true) in
//delay calling the function by the randomDelay value of '0' to '2' seconds
let randomDelay = arc4random_uniform(3)
DispatchQueue.main.asyncAfter(deadline: .now() + randomDelay) { // the randomDelay value throws an unresolved identifier 'randomDelay' error
self.showAnimation2() // Go to the next function
}
})
}
谢谢
你需要将randomDelay
施放到Double
。然后你按如下方式使用它:
let randomDelay = arc4random_uniform(3)
DispatchQueue.main.asyncAfter(deadline: .now() + Double(randomDelay)) {
}
我想这会对你有所帮助!
let aRandomVar = 2 // change 2 to desired number of seconds
let when = DispatchTime.now() + Double(aRandomVar)
DispatchQueue.main.asyncAfter(deadline: when) {
// Your code with delay
}
你没有提到随机数是什么时间单位。我建议你选择一个单位。例如,秒:
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(Int(randomDelay)), execute: {...})
或毫秒:
DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(Int(randomDelay)), execute: {...})