我正在使用一个简单的 CABasic 动画来旋转视图中的图像。当用户触摸图像时,会调用 touches started 以允许开始旋转。当用户完成旋转图像时,将调用 Touches Ended。
一旦触摸结束,我就会再次将图像旋转到固定点。这是代码
CABasicAnimation *rotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
double startRotationValue = 0;
rotation.fromValue = [NSNumber numberWithDouble:startRotationValue];
rotation.toValue = [NSNumber numberWithDouble:startRotationValue+0.25];
rotation.duration = 1.0;
rotation.fillMode = kCAFillModeForwards;
rotation.removedOnCompletion = NO;
[self.view.layer addAnimation:rotation forKey:@"rotating"];
在第二次选择图像之前,这可以正常工作。再次调用 Touches started 但图像无法旋转。事实上,图像根本无法移动,我知道这与它有关
rotation.fillMode = kCAFillModeForwards;
rotation.removedOnCompletion = NO;
我曾尝试在 Touches 开始时调用 removedOnCompletion,但这并不能解决问题。
rotation.removedOnCompletion = YES
这里最好的方法是什么,View 没有正确注册 rotation.removedOnCompletion。