如何在ios中延迟执行动画序列
我们有七个按钮,点击其中的任何一个,我需要对其余的按钮“按顺序”执行动画。 目前,我在for循环中使用以下代码,但动画是在所有按钮上同时完成的如何在ios中延迟执行动画序列,ios,objective-c,uianimation,Ios,Objective C,Uianimation,我们有七个按钮,点击其中的任何一个,我需要对其余的按钮“按顺序”执行动画。 目前,我在for循环中使用以下代码,但动画是在所有按钮上同时完成的 [UIView beginAnimations: @"Fade In" context:nil]; button.alpha = 0; [UIView setAnimationDelay:0]; [button setTitle:@"helloworld" forState:UIControlStateNormal]; [UIView set
[UIView beginAnimations: @"Fade In" context:nil];
button.alpha = 0;
[UIView setAnimationDelay:0];
[button setTitle:@"helloworld" forState:UIControlStateNormal];
[UIView setAnimationDuration:0];
button.alpha = 1;
[UIView commitAnimations];
试试这个循环
for(int btnIndex = 0; btnIndex < 7; btnIndex++) {
UIButton *button = [buttons objectAtIndex:0]; //get button reference from an array
[UIView beginAnimations: @"Fade In" context:nil];
button.alpha = 0;
[UIView setAnimationDelay:(0.1 * btnIndex)];
[button setTitle:@"helloworld" forState:UIControlStateNormal];
[UIView setAnimationDuration:0.1];
button.alpha = 1;
[UIView commitAnimations];
}
for(int-btnIndex=0;btnIndex<7;btnIndex++){
UIButton*button=[buttons objectAtIndex:0];//从数组中获取按钮引用
[UIView beginAnimations:@“淡入”上下文:无];
button.alpha=0;
[UIView设置动画延迟:(0.1*btnIndex)];
[按钮设置标题:@“helloworld”用于状态:UIControlStateNormal];
[UIView设置动画持续时间:0.1];
button.alpha=1;
[UIView委员会];
}
在for循环中尝试这件事
for(int btnIndex = 0; btnIndex < 7; btnIndex++) {
UIButton *button = [buttons objectAtIndex:0]; //get button reference from an array
[UIView beginAnimations: @"Fade In" context:nil];
button.alpha = 0;
[UIView setAnimationDelay:(0.1 * btnIndex)];
[button setTitle:@"helloworld" forState:UIControlStateNormal];
[UIView setAnimationDuration:0.1];
button.alpha = 1;
[UIView commitAnimations];
}
for(int-btnIndex=0;btnIndex<7;btnIndex++){
UIButton*button=[buttons objectAtIndex:0];//从数组中获取按钮引用
[UIView beginAnimations:@“淡入”上下文:无];
button.alpha=0;
[UIView设置动画延迟:(0.1*btnIndex)];
[按钮设置标题:@“helloworld”用于状态:UIControlStateNormal];
[UIView设置动画持续时间:0.1];
button.alpha=1;
[UIView委员会];
}
您不应该再使用beginAnimations:context:了。引用苹果的文档:
iOS 4.0及更高版本不鼓励使用此方法。你应该使用
使用基于块的动画方法来指定动画
改用新的animateWithDuration方法族。特别是animateWithDuration:delay:options:animations:completion:
。该方法采用延迟参数。可以发出一系列动画命令,每个命令都具有较大的延迟值。还可以通过使每个动画的完成块触发下一个动画来链接动画
编辑:这里有一个链接,指向一篇文章,我在这里展示了使用完成方法触发一系列动画的代码:
您不应该再使用beginAnimations:context:了。引用苹果的文档: iOS 4.0及更高版本不鼓励使用此方法。你应该使用 使用基于块的动画方法来指定动画 改用新的animateWithDuration方法族。特别是
animateWithDuration:delay:options:animations:completion:
。该方法采用延迟参数。可以发出一系列动画命令,每个命令都具有较大的延迟值。还可以通过使每个动画的完成块触发下一个动画来链接动画
编辑:这里有一个链接,指向一篇文章,我在这里展示了使用完成方法触发一系列动画的代码:
更改animationdelay及其持续时间更改animationdelay及其持续时间基于时间块的UIView动画的完成块在中断时不会调用,例如用户离开应用程序等。基于块的UIView动画的完成块在中断时不会调用,例如用户离开应用程序等。