2010-06-30 8 views
2

내 애플리케이션에서 서로 다른 뷰 상태로 전환하기 위해 코어 애니메이션을 사용하고 있습니다. 그러나 애니메이션이 끝나면 다른 작업을 수행 할 수있는 방법을 찾아야합니다. 그러나 나는 애니메이션이 종료되는 추적을 유지하는 쉬운 방법이 없다, 나는 대리자 메서드를 구현하고코어 애니메이션 콜백

- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag; 

콜백을 사용할 수 있습니다 이해합니다.

일련의 플래그와 카운터를 사용하는 것과 같은 지루한 해결책을 생각할 수 있지만이 문제를 해결하는 데보다 효율적이고 실용적인 방법이 있는지 궁금합니다.

어떤 생각을하고 있습니까?

답변

7

setValue:ForKey 메서드를 사용하면 각 애니메이션에 고유 한 이름을 지정할 수 있습니다.

[animation setValue:@"myUniqueName" forKey:@"name"]; 

나중에 알아내는 animationDidStop 방법 사용되는 애니메이션은

-(void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)finished { 
    if([[theAnimation valueForKey:@"name"] isEqual: @"myUniqueName"] && finished){ 
       //code 
    } 
    if([[theAnimation valueForKey:@"name"] isEqual: @"otherName"] && finished){ 
     //code 
    } 
} 
+0

완벽한 감사를 중지! –

관련 문제