0

ビュー内で画像を回転させるために、単純な 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を正しく登録していません。

4

1 に答える 1