15

UITableViewCellスタイルがに設定されたのカスタムサブクラスを使用して、で使用しようとしてUITableViewCellStyleSubtitleregisterClass:forCellReuseIdentifier:ます。ただし、これを行う方法がわかりません。

私の考えは、メソッドをオーバーライドしてinit呼び出すことでした

self = [super initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:myReuseIdentifier];

その中で。ただし、どのinitメソッドが呼び出されるか(または、これが正しい方法であるかどうか)がわかりません。

次のすべてのinitメソッドをインターセプトしようとしましたが、セルをデキューするときに正しいメソッドはないようです。

  • init
  • initWithCoder
  • initWithFrame

正しいタイプのセルが返されることを確認したdequeueReusableCellWithIdentifier:forIndexPath:ので、作成されていることがわかります。どのメソッドが呼び出されているのかわからないinitため、デフォルトのスタイルを設定できません。

4

2 に答える 2

36

テーブルセルのinitに対してinitWithStyle:reuseIdentifier:を呼び出すと思います。

アップルのドキュメントから

dequeueReusableCellWithIdentifier:

指定した識別子のクラスを登録し、新しいセルを作成する必要がある場合、このメソッドは、initWithStyle:reuseIdentifier:メソッドを呼び出してセルを初期化します。nibベースのセルの場合、このメソッドは、提供されたnibファイルからセルオブジェクトをロードします。既存のセルが再利用可能であった場合、このメソッドは代わりにセルのprepareForReuseメソッドを呼び出します。

J

于 2013-03-06T04:53:29.233 に答える
2

[[ヘッドスラップ]] 私はばかだ! init 呼び出しの本文に追加しようとしていたメソッド...

initWithStyle:reuseIdentifier:

...、私がオーバーライドする必要があるものです。

ここで見つけた...

iOS 6 UITableView dequeueReusableCellWithIdentifier:forIndexPath を使用する場合の UITableViewCell のスタイルの設定:

自分の質問を閉じるために投票します。願わくば、これを簡潔にすることで、他の人が余分な詳細を読むのを避けるのに役立つことを願っています。

于 2013-03-06T04:51:12.840 に答える