Facebook POP动画只能运作一次

时间:2017-09-08 07:29:23

标签: ios facebook-pop

我每次在我的应用中发生某些事情时都会使用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用法中遗漏了一些东西。

1 个答案:

答案 0 :(得分:1)

好的,我发现了问题。解决方案是将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"];
}