2010-07-02 8 views
13

애니메이션이 완성 된 후에도 호출 할 수있는 함수를 설정할 수 있습니까? UIView을 희미하게하고 superView에서 제거하고 싶습니다.UIView 애니메이션 완료 콜백?

답변

25

는 네, 쉽게 :

당신이 당신의 애니메이션을

[UIView setAnimationDelegate:self]; 
[UIView setAnimationDidStopSelector:@selector(myAnimationStopped:finished:context:)]; 

을 구성하고 같이 당신의 방법을 정의 할 때 :

-(void)myAnimationStopped:(NSString *)animationID 
       finished:(NSNumber *)finished 
        context:(void *)context { 
    // fancy code here 
} 

self 및 그 방법, 할 필요가 없습니다 코스.

+0

감사 - 나는 모든 방법을 통해 찾고 있었어요, 내가 한 – Slee

+1

하하 oldschool ^^이 하나 더 이상 – Macistador

+1

사용하지 않는 다음 대답을 갈 것을 놓친 믿을 수 없어 네, 이상입니다 4 살 ... – Eiko

37

애니메이션 블록을 iOS4에 도입했습니다. Apple은이를 사용하고 새로운 메소드는 주로 콜백을 대체하는 완료 블록을 요청합니다. 예를 들어 :

[UIView animateWithDuration:0.5f 
         delay:0.0f 
        options:UIViewAnimationCurveEaseInOut 
       animations:^{ 
        [myView setAlpha:0.0f]; 
       } 
       completion:^(BOOL finished) { 
        [myView removeFromSuperview]; 
       }];