2011-07-24 21 views
2

私はiPhoneアプリを作成しています(私の最初のiosアプリになります)。 - 背景は、画面全体の不動産をカバーするイメージで、上部に別のイメージがバナーとして表示されます。iPhoneアプリのデザインオプション(バックグラウンドが同じ)〜(〜50)スクリーン

各画面には、0,1,2または3個のボタンが付いたテキストと、バナー画像の下に表示されます。

これをまとめるのに最適なデザインは何ですか?

私が考えていたオプションは(各自で、それぞれのビューを適切に表示する役割を担うルートコントローラを持つことを計画していました)。 1)50個の別々の画面をxib(および関連するビューコントローラ)として用意します。それぞれには、2つの背景画像と特定の画面に必要な多くのボタンが含まれています。

2)xibsとして4つのスーパークラスを用意してください - (ボタンが1つではなく、ボタンが1つ、ボタンが2つ、ボタンが3つ)、それぞれに背景イメージと適切なボタンが含まれています。次に、スーパークラスのインスタンス変数のアウトレットを使用して、テキストとボタンの内容を適切に設定するだけで、50のサブクラスを作成します。

3)ルートコントローラーに、2つの背景イメージが永久に存在するビューがあり、50個のビューのそれぞれにテキストとボタンが表示されます。

4)(これが可能であれば、ウィンドウに画像があるかどうかを確認する必要があります)。ルートコントローラにはビューがないことを除いて3と同じですが、メインウィンドウには背景イメージが表示され、各クラスはその上にテキストとボタンを表示します。したがって、各ビューコントローラは、コードを使ってテキストとボタンオブジェクトをロードして表示する必要があります(その場合、xibを持たない点はあまりありません)。

他に解決策はありますか?これらのうちの1つが「ベストな」ソリューションですか?

私が3人に行った場合、xibの位置テキストとボタンを定義することはできませんか? (そうするためには、インターフェースビルダーに配置するために親ビューが必要ですが、そうであった場合は、ビューが描画されたときに背景が見えなくなります)。

4が可能であれば、ルートコントローラにはビューがありません。したがって、UIViewControllerの子孫である必要がありますか、単純にNSObjectの子孫ですか?

私はオプション2に傾いていると思いますが、そのように私はすべてのビューを視覚的にxibsとして設計できますが、そのうち4つしかありません。より洗練されたより良いソリューションがない限り。

TIA

+0

3では、親ビューを透過的にすることができるため、XIBも使用できます。 –

+0

透過性はそのビューの子によって継承されないので、ボタンも透明になります。> – Gruntcakes

答えて

1

は、あなたが何ができるか、すべてのボタンと1つのXIBで、その後、あなたはそれに応じて隠された設定します。それはあなたを結びつけますが。 2)オプションはより柔軟です。 3)も大丈夫です。あなただけの画像を保持するために、1 rootViewControllerを持っている可能性があり、あなたは可能性がこのような何か:

[rootViewController.spaceForMyChildView addSubview: myNewViewController.view]; 

「spaceForMyChildView」あなたの子ビューを開催するビューになります。

私はおそらく2)と3)の間の融合を行います。

+0

ありがとうございます。私は実験のように何かを試みたが、何も表示されなかった。 [self.childView addSubview:childView.view]は何もしません。([self.view addSubview:childView.view]は子を表示しますが、背景は消えます)。 UIView *としてchildViewを追加しました。私は何かを逃したか、正しく何かを設定していませんか? – Gruntcakes

+0

IBOuletとして「spaceForMyChildView」を作成して接続する必要があります。また、rootviewControllerの背景を見るために、新しいViewControllerのbackGroundをClearColorとして設定する必要があります。 – Peres

0

UIWindowはUIViewから継承されているため、その中に何かを入れることができます。だから、(4)は実行可能ですが、どのような種類のビューローテーションをサポートしたい場合は、トリッキーな水に入るようになり始めています。

私は反転(2)が最も簡単だと思います。viewDidLoadには、プログラム上、バックグラウンドとトップバナーを追加する単一のスーパークラスがあります。あなたの特定のコントローラーにそれを継承させ、画像とバナーが後で追加されることを念頭に置いて、グラフィックを含むようにグラフィックをデザインします。

これは、あなたのビューが本当に単一のテキスト領域と3つのボタンまで常に固定された位置であれば、ジャッキー・ボーイが示唆するように、データソースからフィールドを再投入する単一のビューのように聞こえるおそらく最もスマートなものです。

+0

ありがとうございます。バックグラウンド/バナーをプログラム的にロードすることは重要ですか?言い換えれば、それはうまくいかないでしょう、そして、なぜ、xibにあったのですか?継承クラスにそれぞれ子ボタンなどのxibとしてビューがある場合は、そのビューが表示されるときに、どのようにして背景イメージを隠さないようにするのですか? – Gruntcakes

関連する問題