質問

私は iPhone 開発の学習プロセスのかなり初期段階にいます。いろいろな部分に頭を悩ませています。現在、基本的な NavigationController テンプレートを取得し、いくつかのテキスト フィールドを含む単純なグループ化されたテーブル ビューを作成しようとしています。私ができないことは、Interface Builder を取得して、UITableViewCell を UITableView にドロップして、Cell にテキストフィールドを追加できるようにすることです。これは可能でしょうか(UITableViewCellがドラッグ可能なコントロールであるという事実を考慮する必要があるようです)?

そうでない場合、それはすべて自分で記述する必要があるコードということですか?

役に立ちましたか?

解決

Interface Builder を使用してセルを作成できますが、テーブル ビューの子ではなく、トップレベルのオブジェクトにする必要があります。次に、このセルをビューコントローラーで返すことができます tableView:cellForRowAtIndexPath: 関数。

必ずセルに 識別子 Interface Builder で同じ識別子を使用します。 デキューReusableCellWithIdentifier: (これがどのように機能するかについては、サンプル コードを参照してください。セルが再利用されるという考え方です。OS は、一度に画面に収まる数のセルのみを割り当てます。メモリを節約する賢い方法。)

他のヒント

Boot To The Head の手法には注意してください。適切に処理しないと漏れてしまいます IBOutlets. 。コードを投稿せずに(NDA)、私の能力の限りこれを説明しようとします。IB を使用してセルを作成する予定がある場合は、 UITableViewCell それは独自の Xib ファイルです。ファイルの所有者を自分のものとして設定します UIViewController サブクラス(または UITableController)。電話してください IBOutlet 何かのようなもの UITableViewCell *cellFactory. 。の中に UITableViewDataSource 方法 tableView:cellForRowAtIndexPath: 次の疑似コードを実行します。

  1. IB で設定した識別子を使用してセルをデキューしてみます
  2. 成功したら完了です。セルだけを使用してください
  3. それ以外の場合は、新しいセルを作成する必要があります。使用 [NSBundle mainBundle] loadNibNamed:owner:options: そこに適切な xib ファイルを使用してメソッドを実行します。これにより、cellFactory ivar に新しいセルが入力されます。ここからが厄介な部分です。
  4. セット cell = cellFactory それから解放します cellFactory 誤って再度使用しないように、nil に設定してください。これで、携帯電話を通常どおり安全に使用できるようになりました

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top