2011-03-07 5 views
1

블로그 및 Apple 문서를 자세히 살펴본 결과 답변을 찾을 수 없습니다. 누군가가 자신의 전문 기술을 빌려주기를 바랍니다.iOS UIView 전환, 컨테이너보기 생성 문제

컨테이너보기 'gameContainer'에 따라 작동하는 간단한 UIView 애니메이션이 있습니다. 이전에 호출 한 메소드에서이 컨테이너보기를 작성하면 모두 훌륭합니다.

그러나

, I (아래 코드) 다음 하위 뷰를 'gameContainer' 직전 애니메이션 통화로를 만들 때 'viewGrid'은 어떤 애니메이션 효과없이 나타납니다.

-(IBAction) onInfoUp: (id) sender { 
    //Add a container UIView for animation  
    [self.view addSubview:gameContainer]; // Moving this line to 'viewDidLoad' cures problem 

    //Call animation methods 
    [UIView beginAnimations:@"newGrid" context:nil]; 
    [UIView setAnimationDuration:1.3]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft 
         forView:gameContainer cache:YES]; 
    [gameContainer addSubview:viewGrid]; 
    [UIView commitAnimations]; 
} 

왜 내가 별도의 방법으로 하위보기 컨테이너를 정의해야하는지에 관해서 난처함이 있습니다! 미리 감사드립니다.

답변

1

이것이 UIKit이 화면의 시각적 내용을 업데이트하는 이유입니다. 화면에 대한 모든 실제 수정은 현재 실행 루프의 끝에서 주 스레드에서 실행 중이거나 그렇지 않으면 주 스레드에서 다음 실행 루프의 끝에서 발생합니다. 코드에 표시된 것처럼 gameContainer를 추가하면 화면의 표현 레이어에 표시되지 않습니다.

+0

건배 @MHC. 나는 그것이 순환을 다시 그리는 것과 관련이 있었지만 어떤 참고 자료도 찾을 수 없다고 생각했다. 나는 애니메이션에 앞서 _'setNeedsDisplay'_ 호출 중간 루프를 수행하려고했지만 성공하지 못했습니다. –