UILabel闪烁效果

时间:2015-05-22 08:30:03

标签: ios objective-c iphone xcode6

我正在使用具有闪烁效果的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次闪烁后停止此闪烁效果我不知道如何停止此闪烁效果。 所以,如果有人知道解决方案,请帮助我。 提前谢谢。

2 个答案:

答案 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,那么它将向后退一大步。