我的動畫速度太快了。我正在做一個模式匹配遊戲,我有4個不同顏色的UIViews。我想要一個人眨眼,然後等一會兒,再有一個UIView眨眼。視圖閃爍了我的標籤標識符,我已經爲每個視圖設置了不同的值(1,2,3,4)。看起來他們都在同一時間。我已經嘗試調整animateWithDuration函數的值,這似乎沒有幫助。動畫過快。似乎無法減慢
這裏是我的打印輸出,所以你可以看到它執行正確的順序...
gary
3
gary
2
gary
2
gary
3
gary
2
func beginGame() {
var level = 5
for _ in 1...level {
self.randomNumber = Int(arc4random_uniform(4)) + 1
let originalColor:UIColor = self.view.viewWithTag(randomNumber)!.backgroundColor!
UIView.animateWithDuration(1, delay: 0, options: UIViewAnimationOptions.CurveEaseOut, animations: {
self.view.viewWithTag(self.randomNumber)!.backgroundColor = UIColor.whiteColor()
self.view.viewWithTag(self.randomNumber)!.backgroundColor = originalColor
print("gary")
}, completion: nil)
print(randomNumber)
enemyArray.append(randomNumber)
}
}
//新代碼
func beginGame(){
var level = 5
for _ in 1...level {
self.randomNumber = Int(arc4random_uniform(4)) + 1
let originalColor:UIColor = self.view.viewWithTag(randomNumber)!.backgroundColor!
UIView.animateWithDuration(1, delay: 4, options: UIViewAnimationOptions.CurveEaseOut, animations: {
self.view.viewWithTag(self.randomNumber)!.backgroundColor = UIColor.whiteColor()
self.view.viewWithTag(self.randomNumber)!.backgroundColor = originalColor
print("gary")
}, completion: nil)
print(randomNumber)
enemyArray.append(randomNumber)
}
}
您是否嘗試過在animateWithDuration方法中增加延遲,以便四個不同的動畫不會同時觸發? –
是的,我有。我玩過兩個值。 –
你基本上是在同一時間做所有的動畫。 for循環將所有動畫排隊,然後它們全部同時運行。增加每個延遲,等待直到前一個完成。 – rmaddy