2012-02-21 4 views
0

2つのサブビューの間でアニメーションを作成しようとしています。現時点では、私はさまざまなオプションを試してきましたが、それぞれ独自の副作用があります。アニメーションブロックを使用したiOSの遷移ビュー

アプリケーションは、スキルサブビュー、インベントリサブビュー、およびステータスサブビューを持つ小さなゲームです。スキルとインベントリビューの間をアニメーション化し、メインビューの下部にステータスサブビューを残したいと思います。以下に、私の様々な試みとその副作用を挙げました。

  • [UIView animateWithDuration:0.3 delay:0.3 options:UIViewAnimationOptionTransitionFlipFromRight | UIViewAnimationCurveEaseIn animations:^{ skillView.hidden = NO; inventoryView.hidden = YES; }completion:NULL];
  • animateWithDuration

    `から

    • アニメイトませ遷移が行われているようです。ビューはただでポップ。

  • アニメイトtransitionFromView

    • [UIView transitionFromView:inventoryView toView:skillView duration:0.5 options:UIViewAnimationOptionTransitionFlipFromRight completion:^(BOOL finished){ inventoryView.hidden = YES; }];
    • からの移行が完全に行われますが、他のビューのステータスビューに遷移されます。まるでメインビューがすべてでアニメーション化されているかのように。

ビューはちょうど背景に隠されたメインビューにロードされ、彼らはただ、メインウィンドウにポップアップするために使用しました。しかし、より良いアプリケーションフローを得るためにビュー間をアニメーション化したいと思います。私は人々が削除してメインビューに追加するのを見ましたが、サブビューを可視/不可視に設定することで同じ効果が得られることを期待しています。

アドバイスをいただければ幸いです。

+0

'transitionFromView:...'メソッドで 'UIViewAnimationOptionShowHideTransitionViews'オプションを使用しようとしましたか? (例えば、両方のビューを追加しますが、1つを隠しておき、そのオプションで 'transitionFromView:...'を呼び出してください) – Steve

+0

両方のビューをアニメーションブロックに追加する必要がありますか?もしそうなら、私は元に戻っていかなければならないのですか?私は同様の設定を呼び出すことができますか、または私はビューを気にしないで削除して戻す必要がありますか? – Seb

+0

そのオプション( 'UIViewAnimationOptionShowHideTransitionViews')は、' transitionFromView:... 'がどのように動作するかを変更します。通常、このメソッドは 'fromView'の親のビュー階層を変更します(' fromView'を削除し、 'toView'を追加します)。引用したオプションを使用するには、両方のビューがメソッドを呼び出す前にビュー階層内にあることを確認し、それらがあなたが言及したステータスサブビューよりも上にあることを確認してください。反対方向に進むには、単に引数を反転させます。toViewはfromViewになります。逆もまた同様です。 – Steve

答えて

1

Core Animationでは、直接の祖先(親)から離れたビューをアニメーション化する方法がわかりません。

単一のコンテナビューに分割します。

例:本の

Instad:

Parent 
- Other View 
- Container 
    - View A 
    - View B 
- Other View 

詳細については疑問視するコメントを参照してください:

Parent 
- Other View 
- View A 
- View B 
- Other View 

が、これは持っています。