【发布时间】:2017-07-28 15:27:12
【问题描述】:
我想连续多次为多个按钮制作动画,但是当一个按钮需要动画两次或更多次时,代码根本不起作用。
//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() 函数,但这只会产生不稳定的结果。
【问题讨论】:
标签: ios swift uiviewanimation