UITableViewCellStyle
iOS 6forで新しいメソッドを使用するときにを設定する方法を見つけようとしていますUITableView
。
以前は、UITableViewCell
IUITableViewCellStyle
を作成するときに、呼び出し時にさまざまなタイプのデフォルトセルを作成するように列挙型を変更していましたinitWithStyle:
が、収集できるものから、これは当てはまりません。
UITableView
州のAppleドキュメント:
戻り値:関連する再利用識別子を持つUITableViewCellオブジェクト。このメソッドは常に有効なセルを返します。
考察:パフォーマンス上の理由から、テーブルビューのデータソースは、tableView:cellForRowAtIndexPath:メソッドの行にセルを割り当てるときに、通常UITableViewCellオブジェクトを再利用する必要があります。テーブルビューは、データソースが再利用のためにマークしたUITableViewCellオブジェクトのキューまたはリストを維持します。テーブルビューに新しいセルを提供するように求められたら、データソースオブジェクトからこのメソッドを呼び出します。このメソッドは、既存のセルが使用可能な場合はデキューするか、以前に登録したクラスまたはnibファイルに基づいて新しいセルを作成します。
重要:このメソッドを呼び出す前に、registerNib:forCellReuseIdentifier:またはregisterClass:forCellReuseIdentifier:メソッドを使用してクラスまたはnibファイルを登録する必要があります。
指定した識別子のクラスを登録し、新しいセルを作成する必要がある場合、このメソッドは、initWithStyle:reuseIdentifier:メソッドを呼び出してセルを初期化します。ペン先ベースのセルの場合、このメソッドは、提供されたペン先ファイルからセルオブジェクトをロードします。既存のセルが再利用可能であった場合、このメソッドは代わりにセルのprepareForReuseメソッドを呼び出します。
これはcellForRowAtIndexPath
、新しいメソッドを実装した後の私の新しい外観です。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"cell_identifier";
[tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:cellIdentifier];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
return cell;
}
これまでのコードは正常に機能しますが、常にデフォルトのスタイルを返します。どのように私は私のような他のスタイルで細胞を作成することができますので、これを変更することができUITableViewCellStyleDefault
、UITableViewCellStyleValue1
、UITableViewCellStyleValue2
とUITableViewCellStyleSubtitle
?
サブクラス化したくありません。iOS6より前のバージョンUITableViewCell
と同じようにデフォルトのタイプを変更したいだけです。Appleが拡張メソッドを提供するのは奇妙に思えますが、その実装をサポートするための最小限のドキュメントしかありません。
誰かがこれをマスターしたか、または同様の問題に遭遇しましたか?合理的な情報を見つけるのに苦労しています。
UITableViewCell
が、他のデフォルトのスタイルを取得するためにサブクラス化する必要があるのは、不要なファイルを作成するだけなので面倒です。あなたのコメントと私の疑いを確認してくれてありがとう。