3
votes

I want to add a heartbeat effect to my view , one way to do is use UIView's animation method as follow :

- (void)heartBeating
{
    UIView *panel;
    NSTimeInterval during = 0.8;
    [UIView animateKeyframesWithDuration:during delay:0.0
                             options:UIViewKeyframeAnimationOptionCalculationModeLinear|UIViewKeyframeAnimationOptionRepeat
                          animations:^{
                              [UIView addKeyframeWithRelativeStartTime:0.0 relativeDuration:0.4 animations:^{
                                  panel.transform = CGAffineTransformMakeScale(1.2, 1.2);
                              }];
                              [UIView addKeyframeWithRelativeStartTime:0.4 relativeDuration:0.6 animations:^{
                                  panel.transform =CGAffineTransformIdentity ;
                              }];

                          } completion:^(BOOL finished) {

                          }];
}

the problem is : if i want to stop the animation in an action , for example , a Stop butotn tapped , how I can do .

I know I can realize the same effect by create CAKeyFrameAnimation and add it to the view' CALayer .But I want to know how to do with the UIView's animation method. Thanks.

1

1 Answers

9
votes

Try

[panel1.layer removeAllAnimations];

Hope this will help you.