2011-06-13 3 views
0

UIView 애니메이션 브래킷 내에서 실행해야하는 코드가 있지만 애니메이션이 적용되지 않으므로 애니메이션의 양쪽면에있는 모든 코드가 애니메이션으로 표시되지만 애니메이션은 제외됩니다. 이것을 할 수있는 방법이 있습니까?UIView 애니메이션 블록에서 애니메이션 작업의 특정 동작을 제외 하시겠습니까?

+0

이 "면제"코드 UI는 관련이 있습니까? 애니메이션에서 특정 시간에 실행해야합니까? –

+0

네, 그렇습니다, 그리고 관련 UI입니다. – Andrew

+0

왜 이것이 꽤 합리적인 질문 인 것처럼 보이는지 확실하지 않다. – Sam

답변

2

방금 ​​애니메이션에서 제외하는 UIView의 애니메이션 블록에 삽입 할 수있는 코드가 아니라, 당신이 할 수있는 임의의 복잡한 애니메이션 체인 둥지의 UIView 애니메이션 및 완료 블록 :

[UIView animateWithDuration:0.3f animations:^ { 
    // Animation Code. 
} completion:^(BOOL finished) { 
    // Non-animated code, executed after first animation block... 
    // Blah; 
    // [Blah blah]; 
    [UIView animateWithDuration:0.3f animations:^ { 
     // More animation code. 
    }]; 
}]; 
+0

그것은 다른 클래스에있는 메소드를 실행 중이며,이 메소드를 3 개의 섹션으로 분할하지 않고 그냥 작동 시키려고합니다. – Andrew

+4

@Andrew, 그 코드의 다른 클래스에 메시지를 보내지 못하게하는 것은 아무것도 없습니다. 어쩌면 코드를 게시하여 특정 문제를 더 쉽게 이해할 수있을 것입니다. –

3

이 보인다 수 :

[UIView performWithoutAnimation:^{ 
    view.frame = CGRectMake(...); 
}]; 
+1

답변을 설명해 주시겠습니까? –

+0

애니메이션 블록 내에서보기를 변경하고 해당 변경 사항을 애니메이션으로 제외하려면 제외하려는 변경 사항을 UIView.performWithoutAnimation 코드 블록으로 래핑하면됩니다. – EarlyRiser