1

いくつかの製品の詳細を表示したい画面があります。絵コンテを使っています。

静的セルを含むテーブルビューを使用してこれを実行しましたが、静的セルはUITableViewControllerのテーブルビュー内でのみ実行できます。そして問題な点は、このコントローラー内にImageviewも入れたいということです。UITableViewControllerのテーブルビューがすべての画面サイズを占めるため、これは不可能です。

だから私はテーブルビューのサブビューとしてImageviewをやっています。

それが正しい方法かどうか疑問に思っています。stackoverflowにも同様の問題がありますが、私のユースケースに対応するものはありません(ストーリーボード+テーブルビューコントローラー+静的セル+サブビュー)

4

3 に答える 3

1

UITableViewControllerのサブクラスを持つことができます。初期化した後、ビュー(tableView)を取得し、サブビューとして他のビューコントローラーに追加します。このようにして、tableViewのフレームを(上部を含む)ViewControllerの下部を占めるように設定できます。同じビューコントローラに、UIImageViewなどのサブビューを追加して、上部に配置できます。発生する唯一の問題は、UITableViewControllerサブクラス(viewWillDisappear、viewDidDissappear、viewWillAppear、viewDidAppearなど)への通知の欠落に関連している可能性があります。ただし、TopViewControllerからに転送することはできます。または、iOS 5のメソッドを使用して、UITableViewControllerのサブクラスを子ビューコントローラーとして追加し、必要に応じて配置することもできます。ただし、これは、iOS5.0以降でデバイスをサポートすることを計画している場合に役立ちます。

UIViewControllerのメソッドのドキュメントを参照してください。

- (void)addChildViewController:(UIViewController *)childController __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0);
于 2012-07-24T17:19:13.927 に答える
1

カスタムコードを記述せずに、次のいずれかを実行できます。

  1. UIImageViewをテーブルビューのヘッダービューまたはフッタービューに配置します。
  2. 静的セルを作成し、その中にUIImageViewを配置します。テーブルセルは均一な長さである必要はありません。必要に応じて、他のセルよりも高くすることができます。
于 2012-07-24T17:23:08.903 に答える
0
  • UITableViewをviewControllerのプロパティとして使用し、UITableViewControllerをサブクラス化するのではなく、vc.viewに追加してから、フレームを好きなように設定します。
  • imageViewをvcに追加します。たとえば、UITableViewの上に配置する必要がある場合は、TableViewのヘッダーとして追加します。
于 2012-07-24T14:30:26.323 に答える