2010-03-20 5 views
3

다음 코드를 사용하여 문자열 롤링을 수행하지만 애니메이션을 중지하는 방법은 무엇입니까? 헤더에서beginAnimations 사용 후 애니메이션을 멈추는 방법은 무엇입니까?

[UIView beginAnimations:@"ruucc" context:NULL]; 
[UIView setAnimationDuration:12.8f]; 
[UIView setAnimationCurve:UIViewAnimationCurveLinear]; 
[UIView setAnimationDelegate:self]; 
[UIView setAnimationRepeatAutoreverses:NO]; 
[UIView setAnimationRepeatCount:999999]; 

frame = label1.frame; 
frame.origin.x = -12; 
label1.frame = frame; 
[UIView commitAnimations]; 
+0

참조 http://stackoverflow.com/questions/554997/cancel-a-uiview-animation –

답변

1
- (void)doAnimation 
{ 
    [UIView animateWithDuration:12.8f 
          delay: 0.0 
         options: UIViewAnimationCurveLinear 
        animations:^{ 
         frame = label1.frame; 
         frame.origin.x = -12; 
         label1.frame = frame; 
        } 
        completion:^(BOOL finished){ 
         if(keepAnimating) { 
          [self doAnimation]; 
         } 
        }]; 
} 

:

keepAnimating = YES; 
[self doAnimation]; 

중지 애니메이션 :

keepAnimating = NO; 
BOOL keepAnimating; 

애니메이션 시작하려면이 솔루션은 UIView에서 블록 기반 애니메이션 메서드를 사용합니다. 이전 애니메이션 세트 ([UIView beginAnimations] 등)와 관련하여 UIView 클래스 참조는 다음과 같이 설명합니다.

iOS 4 이상에서는이 섹션의 메소드 사용을 권장하지 않습니다. 블록 기반 애니메이션 방법을 대신 사용하십시오.

관련 문제