ビュー内で画像を回転させるために、単純な CABasic Animation を使用しています。ユーザーが画像に触れると、回転を開始できるように 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"];
これは、画像が 2 回目に選択されるまで正常に機能します。タッチ開始が再度呼び出されますが、画像を回転できません。実際、画像はまったく移動できません。私はそれが関係していることを知っています
rotation.fillMode = kCAFillModeForwards;
rotation.removedOnCompletion = NO;
問題を解決しない Touches started で removedOnCompletion を呼び出そうとしました。
rotation.removedOnCompletion = YES
ここでの最善のアプローチは何ですか。どういうわけか、ビューはrotation.removedOnCompletionを正しく登録していません。