2011-03-07 7 views
1

ブログやAppleのドキュメントを吟味したため、回答が見つかりませんでした。誰かが専門知識を貸してくれることを願っています。iOS UIViewの遷移、コンテナの表示作成の問題

私は、コンテナービュー'gameContainer'で動作する単純なUIViewアニメーションを持っています。以前に呼ばれたメソッドでこのコンテナビューを作成すると、すべてがうまく行きました。

私は前のアニメーション・コール(以下コード)にすぐ「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'_コールのミッドループを実行しようとしましたが、成功しませんでした。 –

関連する問題