0
クリックすると、ImageViewが回転して元の状態に戻ります。しかし、高速のクリックが繰り返されると、画像ビューは元の状態に戻りません。どんなアイデアでもないのですか?コードは次のとおりです。CGAffineTransformRotateは、繰り返しクリックすると元の状態に戻りません。
int repeatCounter = 20;
NSLog(@"Rotate animate started");
[imageView.layer removeAllAnimations];
// Set image
if ([imageView isEqual:rideImageView]){
[rideImageView setImage:rideImage];
}
else{
[crashImageView setImage:crashImage];
}
CGAffineTransform rotateStart = CGAffineTransformRotate(imageView.transform, 0.2);
CGAffineTransform rotateEnd = CGAffineTransformRotate(imageView.transform, 0.0f);
// this spin completes 360 degrees every 2 seconds
[UIView animateWithDuration:duration/repeatCounter
delay:0
options:UIViewAnimationOptionCurveEaseOut
animations:^{
[UIView setAnimationRepeatAutoreverses:YES];
[UIView setAnimationRepeatCount:repeatCounter];
imageView.transform = rotateStart;
}
completion:^(BOOL finished) {
NSLog(@"Rotate animate completed");
imageView.transform = rotateEnd;
if (finished) {
NSLog(@"Rotate animate finished but after repeated clicks is permanently rotated");
if ([imageView isEqual:rideImageView]){
[rideImageView setImage:rideLabelledImage];
}
else{
[crashImageView setImage:crashLabelledImage];
}
}
}
];
私はあなたがフラグが必要だと思うが、アニメーションがオンのときに別の –
ナイスアイデア、Reinierを開始しませんが、どこで、ハンドルがアニメーションかどうかを確認するのですか? – TomV
アニメーションブロックの前にifチェックを追加して、アニメーション変数をtrueに設定し、終了コールバックでアニメーション変数をfalseに設定すると、 –