所以这个解决方案对我来说非常合适 Wait until animation finishes before moving on Swift
最初,我有19个不同功能的19个物体。
然而: 因为每个函数的动画非常相似,所以我创建了一个带有所需参数的函数。现在我遍历一个包含所需参数的数组,并为每个项调用函数。 但所有的动画都是一次又一次地发生的。 我该怎么做才能让动画一个接一个地发生?
override func viewDidLoad() {
super.viewDidLoad()
for key in hexagonValues.keys {
animateLabel(key)
}
}
func animateSums(key: String, inout delayBy: Double) {
let sumText = UILabel()
for number in hexagonValues[key]! {
if sumText.text == nil {
sumText.text = String(number)
}
else {
sumText.text = sumText.text! + "+" + String(number)
}
UIView.animateWithDuration(3, delay: delayBy, options: [ .Autoreverse, .CurveEaseInOut], animations: {
self.flipAlpha((self.hexagons[number])!, myalpha: 0)
}) { _ in
UIView.animateWithDuration(3, delay: delayBy, options: [ .Autoreverse, .CurveEaseInOut], animations: {
self.flipAlpha((self.hexagons[number])!, myalpha: 1)
}) { _ in
}
}
delayBy = delayBy + 10
}
animateTotal(key, sumText: sumText, delayBy: &delayBy)
}