2011-06-13 1 views
5

을 기다리지 않고이 코드가 있습니다. 두 번째 비트를 실행하기 전에 단지 0.8 초 기다릴 수있는 방법이 있습니까?의 UIView 애니메이션 블록

+0

왜 downvote :

다음은 귀하의 질문에 예전처럼 0.8의 지연을 사용하는 예제입니다? –

+0

@quixoto : 나! =) –

+0

정확히 두 가지 방법으로 수행되는 것은 무엇이며 완료 블록이 대기 중이 아닌 것을 어떻게 결정합니까? –

답변

4

완료 매개 변수를 사용하는 대신 [NSTimer performSelector:withObject:afterDelay]에 대한 호출을 추가 할 수 있습니다.

9

그런 애니메이션 블록을 오용하지 마십시오. 지연이 정말로 필요한 경우, Ken 링크 된 방법을 사용하거나 쉬운 방법은 GCD (iOS 4+)를 사용하는 것입니다.

dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC * 0.8); 
dispatch_after(delay, dispatch_get_main_queue(), ^(void){ 
    [self anotherMethod]; 
}); 
+0

GCD 사용 +1 –

+0

Andrew가 [animateWithDuration : animations : completion :'을 사용하라고 말한 것은 가치가 있습니다. (http://stackoverflow.com/questions/6330050/how-do-i-) 그가 계속 작업하고있는 문제에 대해 continu-before-continui로 완성 된 다른 클래스의 애니메이션을 기다릴 때까지 기다려야합니다. 애니메이션 블록을 제공하는 경향이있는 경우 그 대답이 왜 애니메이션 블록을 "잘못 사용하는"것으로 간주하는지 자세히 설명 할 수 있습니다. –

+0

나는 그에게 더 자세한 설명을 기다리고 있었지만 어쨌든 그는 그것을 알아 낸 것 같았다. –