Facebook POP 动画只工作一次

Facebook POP animation works only once

我正在使用 Facebook Pop 库在每次我的应用程序发生某些事情时跳出视图。问题是动画只在第一次出现时起作用。

使用此代码段很容易重现

- (IBAction)buttonAction:(id)sender
{
    POPSpringAnimation *sprintAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPViewScaleXY];
    sprintAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(0.9, 0.9)];
    sprintAnimation.velocity = [NSValue valueWithCGPoint:CGPointMake(2, 2)];
    sprintAnimation.springBounciness = 20.f;

    [self.shakeView pop_addAnimation:sprintAnimation forKey:@"springAnimation"];
}

第一次点击按钮时,shakeView 动画正确,但之后的点击不正确。

我尝试使用 [self.shakeView pop_removeAllAnimations] 删除所有动画,然后再添加新动画,但没有用。

我想我在 Pop 用法中遗漏了一些东西。

好的,我找到问题了。解决方法是将removedOnCompletion设置为NO,如下:

- (IBAction)buttonAction:(id)sender
{

    POPSpringAnimation *sprintAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPViewScaleXY];
    sprintAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(0.9, 0.9)];
    sprintAnimation.velocity = [NSValue valueWithCGPoint:CGPointMake(2, 2)];
    sprintAnimation.springBounciness = 20.f;

    sprintAnimation.removedOnCompletion = NO;

    [self.shakeView pop_addAnimation:sprintAnimation forKey:@"springAnimation"];
}