2010-12-06 4 views
1

왜이 기능이 작동하지 않습니까?UIView 애니메이션이 지연을 고려하지 않습니까?

[UIView animateWithDuration:0 delay:3 options:0 animations:^(void) { 
    NSLog(@"after duration, please!"); 
} completion:nil]; 

NSLog가 즉시 실행됩니다.

나는 (많은 경우가 있지만) 해결 방법을 찾고있는 것이 아니라 왜 이것이 궁금 할 지 궁금합니다.

답변

3

핵심 애니메이션의 중간 프레임은 실제로 다른 배경 스레드에서 발생합니다. 애니메이션의 처음이자 마지막 프레임은 종종 즉시 생성됩니다. 따라서 NSLog는 진행중인 백그라운드 애니메이션을 기다리거나 알지 않고도 기본 UI 스레드에서 시작될 수 있습니다.

+0

흥미로운 대답입니다. 감사... –

관련 문제