我想連續動畫多個按鈕,但是當需要動畫兩次或多次動畫時,代碼根本不起作用。如何在swift 3中延遲多次動畫對象?
//function that animates a button
func buttonAnimationChain(buttonColor:UIButton, iDelayTime: Int){
UIView.animate(withDuration: 0.5, delay: Double(iDelayTime), options: [],
animations: {
buttonColor.alpha = 0.0;
},
completion: {finished in
buttonColor.alpha = 1.0;
})
}
//function that displays the sequence
func showSequence(iGeneratedArraySequence: [Int]){
var iDelayTime:Int = 0;
for _ in 1 ... iGeneratedArraySequence.count{
if(iGeneratedArraySequence[iDelayTime] == 1){
buttonAnimationChain(buttonColor: buttonBlue, iDelayTime: iDelayTime);
}
if(iGeneratedArraySequence[iDelayTime] == 2){
buttonAnimationChain(buttonColor: buttonYellow, iDelayTime: iDelayTime);
}
if (iGeneratedArraySequence[iDelayTime] == 3){
buttonAnimationChain(buttonColor: buttonPurple, iDelayTime: iDelayTime);
}
if(iGeneratedArraySequence[iDelayTime] == 4){
buttonAnimationChain(buttonColor: buttonGreen, iDelayTime: iDelayTime);
}//end of if statement
iDelayTime += 1;
}//end of for loop
}//end of function
當產生的數組只有那些不重複的數字,動畫作品完美,但一旦一個按鈕,需要進行兩次動畫,什麼也不顯示。我認爲這是因爲按鈕只是停留在非活動狀態,即使另一個函數變成活動狀態,我想不出一個解決方案來解決這個問題。我嘗試過使用sleep()函數,但這只是產生不可思議的結果。
這個問題有點複雜。我需要按照一定的順序對盒子進行動畫處理,而不是使盒子來回閃爍。 –
@RyanYang請檢查現在,請避免任何語法錯誤 –