2011-10-27 5 views
0

私はApp Storeアプリケーション(iPadデバイス)に表示されるようなユーザーインターフェイスを作成しようとしています。これは、スクロール可能なグリッド(水平スクロール)の一種で、各要素はアプリストアで販売できるアプリケーションの概要で構成されています(各要素は画像、タイトルなどで構成されています)。私の目標は同じです。私は要素が配置され、表示されるUIScrollViewの開発に興味があります。各UI要素は、画像と説明で構成されています。iPad、App Storeのようなインターフェイス、提案を管理する項目

以前の検討事項から、私はItemViewController.h/.mと相対.xib(ItemView.xib)を開発しました。各要素は、タップのようなアクションに応答できます。 ItemViewController.mは、File's Ownerであるため、このタップを管理します。要素は、MainViewController.h/.mクラスのinitWithNibNamadメソッドで作成されます。このクラスには、UIScrollViewが含まれます。次に、項目に関連付けられたビューがUIScrollViewに追加されます。

複数のアイテムがある可能性があるので、MainViewControllerのItemViewControllerアイテムを管理するための提案をいただけますか? ItemViewControllerの各リファレンスを辞書などに格納する必要がありますか?最初の瞬間、私はItemView.xibファイルの所有者としてMainViewControllerを設定することも考えましたが、アイテム管理の問題は残っていると思います。

ありがとうございます。私はそれがはっきりしていることを望む。

答えて

1

これは構造的に後方にあるように私に聞こえる。あなたは、あなたのコントローラーのインターフェースによって提示されたアイテムを保管すべきではありません。コントローラがインターフェイスのビューを構築するために使用するアイテムを含むモデルが必要です。

したがって、製品のリストとそれに関連するメタデータを含むモデルがあります。あなたのコントローラは、そのリストを照会し、その中の各項目のためのビューを構築し、それらのビューをアプリのビュー階層に追加します(おそらくあなたのようにスクロールビューで)。これらのビューとのやりとりはすべてコントローラにコールバックし、モデルを変更します。モデルを変更すると、提示されたビューを適切に更新する(またはリロードする)ことを知るようにコントローラがリッスンするという通知が送信されます。

この配置では、モデル内の1つの項目をインターフェイスで複数回表現できます。 「Giant」とタグ付けされたアイテムのリストと「Green」というタグが付けられたアイテムのリストを提示しているとします。 「Jolly Green Giant」製品をお持ちでしたら、両方のリストに表示されます。しかし、モデル内の同じアイテムが両方のソースになっているため、一方のモデルへの変更は他方のモデルに自動的に反映されます。これは一般的に望ましい動作です( "Green"リストから "Jolly Green Giant"を削除した場合、 "Giant"リストから削除することもできます)。

詳細については、MVC(Model View Controller)パターンを参照してください。

1

AQGridViewをご覧ください。これは、必要な処理を行う以上のものです。

+0

返信いただきありがとうございます。以前に説明したものと同じコンポーネントをAQGridViewで作成できますか? –

関連する問題