1

同様の質問をたくさんしましたが、まだこれを明確に理解していません。

より良いデザインの観点から-正しい方法-View Controller自体にすべてのUIButton、UILabelsなどを作成し、それらをサブビューとして追加するか、必要なすべてのボタンを備えたカスタムビュー(@interface MyView : UIView)を作成する必要があります/ラベルなどを作成し、そのビューをビュー コントローラーのビュー プロパティに割り当てますか? インターフェイスビルダーを使用していません。

このようなカスタムビューを作成したり、View Controller自体にすべてを追加したりする必要性/利点はありますか? 申し訳ありませんが、私はiOSアプリ開発に非常に慣れていません:-)

誰かが私にそれを説明できれば、本当に役に立ちます。

4

3 に答える 3

0

ビューをサブクラス化する利点は次のとおりです。

  1. コードの分離。複雑なビューがあり、ビュー コントローラーをきれいに保ちたい場合は、サブクラス化して分離します。
  2. 再利用。ビューを他の場所で再利用する場合、ビューが独自のクラスである場合、最小限の労力で可能です。
  3. セットアップ用に公開するセットアップとメソッドを選択できます

ビューをサブクラス化することのいくつかの欠点は次のとおりです。

  1. ビューは、ビュー コントローラー ivar にアクセスできなくなります。
  2. ビューコントローラーは、ビューを直接操作できなくなります
  3. セットアップと構成に関して、ビューが公に公開するものに制限されます (良いことかもしれません)。

全体として、最適な答えは 1 つではありません。すべては、セットアップと、プロジェクトをどのように整理したいかによって異なります。

于 2013-09-02T14:58:13.177 に答える
0

私の非答え:答えはこれらの2つの反対側の間にあります:

  • 基本的なビューだけを使用して、View Controllerにすべてを入れます
  • 退屈なグラフィック作業を抽象化する非常に精巧なビューを使用します。

私が話していることのアイデアを得るために:だけでUITableView動作を に直接実装し、すべての indexPath 計算 (スクロールの量に応じて)、ビューのリサイクルなどを処理することができます... このまさに viewController で.UIViewControllerUIScrollView

しかし、リストは情報を視覚的に表示する一般的な方法であるため、この「リサイクル ビュー」、「現在表示されているセルのコンテンツの設定」はすべてカスタム ビュー クラスに移動されておりUITableView、デリゲートおよびデータソース パターンを使用してこのクラスを作成しています。動作を簡単にカスタマイズできます。

抽象化の作成には、長所と短所があります。私は段階的に物事をやろうとします:

  • viewControllerでできる限り保持する
  • コードが複雑になりすぎた場合、または他の場所で同じ種類の「コンポーネント」が必要であることがわかった場合: カスタムビューを作成し、その API (公開するプロパティ、非表示にする実装) を定義してみてください。
于 2013-09-02T15:01:26.817 に答える