2016-03-21 13 views
-1

iOSアプリケーションの小さなサブビューの切り替えに共通のパターンはありますか?たとえば、ある種の画像編集アプリケーションを作成していて、panel view in interface builderのような計測器パネルビューを持っています。iOSサブビューの切り替え共通パターン

ボトムパネルの適切なボタンが押されたときに、このビューの右上の領域でスライダとアイコンを使用して異なるビューを変更したいとします。このような状況では、どんなアプローチが良いでしょうか? すべてのサブビューにxibがあり、ボタンを押すたびにサブビューにロードされますか?

Interface Builderでサブビューを作成し、ボタンを押したときに1つを除いてすべてを非表示にしますか?おそらく、これを行うための便利なアプローチがいくつかありますか? そして私は自動レイアウトを使用しています。どのようにコンテンツを集中させ、コンテンツをその領域に埋めるために制約を処理する必要がありますか?

答えて

0

私の好ましいアプローチはこれです:

1)あなたのビューコントローラ

2でコンテナビューを作成します)各サブビューのための独立したView Controllerを作成し、あなたのサブビューは、インタラクティブであり、いくつかのコントロールを持っている場合(これは理にかなっています自らの論理)。私はストーリーボードにそれらを作成し、Interface Builderでデザインするのに役立つカスタムサイズを与えてから、[storyboard instantiateViewControllerWithIdentifier:]を使ってコードにロードします。

3)目に見える1は[self.containerView bringSubviewToFront:childVC1.view]ような何かを行うことによって(上にあることを保証し、子ビューコントローラを追加します。

4)あなたは、子のVCを切り替えると、前に現在の1のビューを持って来ます。

5)。親VCと子VCの間の通信では、代理人を使用して保持サイクルを防止することができます。

+0

ありがとう、面白いです。少し質問に答えてもらえますか?そのインストゥルメントパネル全体で同じことをする方がいいでしょうか?私は別のxibでそれを作って、ボタンがメインコントローラーにプッシュされた後にロードします。そして、それぞれのロードされた "小さな"サブビューのコントローラで、レイアウト制約をコード内に設定する必要がありますか? –

+0

私は、似たような状況でコード内に制約を設定しなければならないとは思いません(これは幸いです。 IBであなたの子VCをレイアウトし、子VCのビューのフレームを正しく設定している限り、あなたはうまくいくはずです。 – Macondo2Seattle

+0

私は、「そのインストゥルメントパネル全体で同じことをやって」とはどういう意味か分かりません。それぞれの子VCのすべてのボタンのコピーを持っていることを意味しますか? – Macondo2Seattle