2012-10-30 3 views
0

가능한 복제를 UIView의 애니메이션을 중지하는 방법 :
Cancel a UIView animation?아이폰 OS는 - 특정 프레임에

내가는 UIView의 애니메이션을 중지해야합니다. 나는 [object.layer removeAllAnimations];을 사용할 수 있지만 애니메이션을 멈추지는 않지만 "건너 뜁니다"라는 것을 알고 있습니다. 따라서 원래의 애니메이션이

[UIView animateWithDuration:8.0 delay:0.0 options:UIViewAnimationOptionAllowUserInteraction animations:^ (void) { 
     [ingredient setFrame:CGRectMake(20, 200, 34, 45)]; 
    } completion:^ (BOOL finished) { 
     NSLog(@"Completed"); 
    }]; 

인 경우 애니메이션이 끝난 경우의 프레임이됩니다. 대신, 애니메이션을 완료하지 않고 개체를 특정 지점에서 중지하고 싶습니다.

+0

장치를 끄면 모든 애니메이션이 중지됩니다. –

+0

가능한 [UIView 애니메이션 취소?] (http://stackoverflow.com/questions/554997/cancel-a-uiview-animation) 및 [UIView 애니메이션 중지 방법] (http://stackoverflow.com/) 질문/7204602/how-to-stop-an-uiview-animation) –

+1

복제본이 아니기 때문에이 질문은 애니메이션을 '일시 중지하는 것'이 아니라 취소하는 것입니다. – WDUK

답변

1

일시 중지를 원하지만 다시 시작하지 않으려면, 시도 :

CALayer *objectPresentationLayer = [object.layer presentationLayer]; 
object.layer.transform = objectPresentationLayer.transform; 
[object.layer removeAllAnimations]; 

일시 정지 및 애니메이션을 다시 시작, 애플 Q & A로부터이 체크 아웃 할 경우 https://developer.apple.com/library/ios/#qa/qa2009/qa1673.html

+0

이것은 애니메이션을 ios 9에서 완성 된 상태로 옮기는 것 같습니다. – tommybananas

+0

나에게도 효과가 없지만'progressView.layer.frame = progressView.layer.presentation() !. frame'이 작동했습니다. – kgaidis

관련 문제