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"];
}
我正在使用 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"];
}