我正在使用具有闪烁效果的UIButton。我已将此代码用于UIButton上的闪烁效果
UIButton *random = (UIButton *)[self.view viewWithTag:i+20];
random.alpha = 0;
[UIView animateWithDuration:0.2 delay:0.2 options:UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse animations:^{
random.alpha = 1;
} completion:nil];
此代码将闪烁UIButton但我想在3次闪烁后停止此闪烁效果我不知道如何停止此闪烁效果。 所以,如果有人知道解决方案,请帮助我。 提前谢谢。
答案 0 :(得分:6)
使用CABasicAnimation
代替UIView动画
UIButton *random = (UIButton *)[self.view viewWithTag:i+20];
random.alpha = 0;
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"opacity"];
[animation setFromValue:[NSNumber numberWithFloat:0.0]];
[animation setToValue:[NSNumber numberWithFloat:1.0]];
[animation setDuration:0.2f];
[animation setRepeatCount:3];
[animation setAutoreverses:YES];
[animation setRemovedOnCompletion:NO];
[random.layer addAnimation:animation forKey:@"animation"];
答案 1 :(得分:1)
您可以在动画块中调用[UIView setAnimationRepeatCount:3]
。您不应该使用UIViewAnimationOptionRepeat
标记,因为它会使您repeatCount
无限期。
我想如果Apple为repeatCount
提供的UIView
动画不提供CABasicAnimation
,那么它将向后退一大步。