9

私は iPhone 開発の学習プロセスの非常に早い段階にいます。いろいろな部分に頭を悩ませようとしています。現在、基本的な NavigationController テンプレートを使用して、いくつかのテキスト フィールドを持つ単純なグループ化されたテーブル ビューを作成しようとしています。私ができないように見えるのは、Interface Builder で UITableViewCell を UITableView にドロップして、テキスト フィールドをセルに追加できるようにすることです。これは可能ですか(UITableViewCellがドラッグ可能なコントロールであるという事実が与えられているようです)?

そうでない場合、それはすべて自分で書く必要があるコードであることを意味しますか?

4

4 に答える 4

17

Interface Builder を使用してセルを作成できますが、テーブル ビューの子ではなく、最上位のオブジェクトにする必要があります。次に、View Controller のtableView:cellForRowAtIndexPath:関数でこのセルを返すことができます。

Interface Builder でセルに識別子を与えてから、 dequeueReusableCellWithIdentifierで同じ識別子を使用してください:一度に画面に収まります。メモリを節約する賢い方法です。)

于 2008-09-25T17:20:03.820 に答える
6

Boot ToTheHeadの方法に注意してください。を適切に処理しないと、リークが発生しますIBOutlets。コード(NDA)を投稿せずに、これをできる限り説明しようと思います。IBを使用してセルを作成する場合は、UITableViewCell独自のXibファイルを作成してください。ファイルの所有者をUIViewControllerサブクラス(またはUITableController)として設定します。IBOutletのようなものを呼び出しUITableViewCell *cellFactoryます。このUITableViewDataSourceメソッドtableView:cellForRowAtIndexPath:では、次の擬似コードを実行します。

  1. IBで設定した識別子を使用してセルをデキューしてみてください
  2. 成功した場合は、完了です。セルを使うだけ
  3. それ以外の場合は、新しいセルを作成する必要があります。[NSBundle mainBundle] loadNibNamed:owner:options:そこにある適切なxibファイルでメソッドを使用します。これにより、cellFactoryivarが新しいセルでいっぱいになります。ここに注意が必要な部分があります。
  4. 誤って再度使用しないように、設定してから解放し、nilに設定しますcell = cellFactorycellFactoryこれで、セルを通常どおりに安全に使用できます
于 2008-09-25T21:45:22.263 に答える
1

残念ながら、実際にはそのようには機能しません。テーブルビュー内のセルは、実行時にデリゲートによって生成されます。ただし、非常に単純なコードであることがわかります。tableview のサンプル コードを確認してください。非常に簡単に理解できます。

于 2008-09-25T17:15:19.510 に答える
1

これは、 UITableView の UI ビルダーの使用に関する優れたチュートリアルです。

于 2009-03-02T14:16:46.670 に答える