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];
}
}
}
];
난 당신이 플래그를 필요가 있다고 생각, 그리고 애니메이션에있을 때 다른 –
멋진 아이디어, 라이 니어을 시작하지 않지만, 어디 핸들이 애니메이션 있는지 확인하기 위해 어떻게해야합니까? – TomV
animate 블록 앞에 if 체크를 추가 할 수 있습니다. 애니메이션 변수를 true로 설정하고 finish 콜백에서 animating 변수를 false로 설정하면 –