2013-01-24 5 views
9

iOS6には、制約ベースのレイアウトシステムであるAutoLayoutがあります。私はそれがAndroidの柔軟なXMLレイアウトに幾分匹敵すると思う。AutoLayoutがあるときに2つのストーリーボードがあるのはなぜですか?

私はiOS6プロジェクトを開始して、あなたにAutoLayoutしたいと思っています。このアプリは普遍的なものになります。 2つのデバイスファミリ間で非常に類似しているビューがいくつかあります。 iPad上の他のビューは、iPhoneのビューで2つ以上のコントローラになります。

私が理解していることから、UIViewControllerは他の子UIViewControllerで設定できます。つまり、両方のデバイスにユニバーサルビューを構築するための2つの要素があります。

私の質問は、なぜ2つのストーリーボードが必要なのかです。私は、iPadのストーリーボードにいくつかの追加のコントロールなどがあることがわかります。また、2つのデバイスタイプの間でフォントサイズやその他の変数を拡大する問題もあります。誰も2つのストーリーボードでビューを重複させず、AutoLayoutを効率的に使って良い普遍的なアプリを実現する方法についてアドバイスを提供できますか?

非常に高く評価されています。

+0

できません!両方とも使用する必要があります。 – TonyMkenu

+0

大きなデバイスであるという理由だけで、同じUIを使用していても大きければ大きいというわけではありません。 iPhoneとiPadの間で、デバイスの使用方法が変わります。 UIの概念はまったく異なります。 – Fogmeister

答えて

8

iPad UIは、iPhone UIの単純な拡大版ではありません。使用する画面スペースが増え、カスタムのiPad専用のインターフェイス要素(UISplitViewControllerなど)があります。

異なるデバイスが非常によく似たレイアウトを持っている場合、はい、自動レイアウトで1つのレイアウトを使用するだけでOKです。しかし、私はほとんどの場合、それに対して反対することをお勧めします。デバイスの種類ごとに1つずつ、2つのレイアウトがあることは明らかです。

最終決定はあなた次第です。オートレイアウトを使用して単一のレイアウト戦略を試して、特定の問題に対処するかどうかを確認することもできます。

+1

もう一度+1してもらいたいです。 – Fogmeister

+0

しばらくしていましたが、私はソートのハイブリッドソリューションで終わった。私はiPadのレイアウトを作成するiPadのストーリーボードを持っています。ストーリーボードの一部のパネル(UIView)は空白です。アウトレットとオプションが設定されている場合、私はMasterIPadViewController、MasterIPhoneViewControllersのセットを持っています。 iPadのVCの中には、iPhoneのものを拡張し、UIに特別な機能を追加するものもあります。これにより、最大限のコード再利用と最大限のUI柔軟性が確保されました。 (60Hzはアプリの名前です) – dineth

+0

私はiOSとAndroidで動作します。フラグメントとJavaクラス階層構造のいくつかは、再利用のための柔軟性を提供します。しかし、はい、彼らは余分な複雑さの独自のセットを持って来る。私の次の普遍的なアプリケーションのアーキテクチャはかなり違いますと思います。 – dineth

2

ストーリーボードを使用せずにすべてをプログラムで作成するのは、おそらくもっと簡単なことですが、これは意見に基づくものです。

あなたの質問は少し曖昧ですが、私の意見はあなたが述べたように自動レイアウトでビューをセットアップし、それらのビューを使用するコントローラを持つことです。何が起こるのかは、コントローラ内のビュー内でビューを表示することで、デバイスに応じてどこに行くかを選択しながら、すべてのレイアウトを制御できるようになります。

より具体的な例を挙げておけば助けになるかもしれません。正直言って、これは私にも興味があるものです。私はこれについて他の考えを見ることを楽しみにしています。

+0

あなたの答えをありがとう。このようなことを達成する方法は何かをテストするためにいくつかのサンプルプロジェクトを行いましたが、これからいくつかの成功を収めました。私はこれがブログ投稿全体に当てはまると思っています。私はここで答えとして要約を書いて投稿します。私はちょうど1つのストーリーボードを読み込むことができました。 – dineth

関連する問題