2014-01-29 3 views
2

iOS 앱을 만들고 있는데 한 가지 방법으로 약 2 초 동안 지속되는 일련의 애니메이션을 수행하는 for 루프가 있습니다.iOS는 애니메이션이 완료 될 때까지 회전을 방지합니다.

내 문제는 애니메이션이 진행 중일 때 장치를 회전하면 새로운 방향의 서식이 엉망이됩니다. 회전이 발생하면 모든 것이 올바르게 작동합니다. 애니메이션 완료 후 문제가 발생합니다.). 당신은 당신이 당신의 애니메이션이 완료 여부에 따라 갱신하십시오 BOOL 인스턴스 변수를 가질 수있다 회전

+0

'UIView' 애니메이션 블록을 사용하고 있습니까? – hgwhittle

+0

예, 애니메이션 블록을 사용하고 있습니다. – user1855952

답변

0

을 지연 할 수있는 방법이 있는지

그래서 궁금했다. 그런 다음 shouldAutorotate 메소드를 재정의하고 BOOL을 반환하십시오. 다음과 같이 보일 수 있습니다 :

@implementation YourViewController { 
    BOOL _shouldAutoRotate; 
} 

-(BOOL)shouldAutorotate { 
    [super shouldAutorotate]; 
    return _shouldAutoRotate; 
} 

-(void)yourAnimationMethod { 

    _shouldAutoRotate = NO; 

    [UIView animateWithDuration:2.0f animations:^{ 
     //your animations 
    } completion:^(BOOL finished) { 
     if(finished) { 
      _shouldAutoRotate = YES; 
     } 
    }]; 
} 
관련 문제