[PR]
2024年11月21日
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
各セルにアクセサリーを設定する
2009年01月19日
テーブルの各セルの右側には、アクセサリーと呼ばれるパーツを配置することができます。これを実現するのに使うのがaccessoryTypeForRowWithIndexPath:です。とりあえず例によって実際のコードから引っ張ってきましたので、まずはそれを見てみましょう。
さて、このコードでは編集ボタンが押されて編集状態にあるか、そうでないかでアクセサリーを切り替えています。編集モードではディテールディスクロージャーボタンという、青丸に>記号が入ったようなボタンが表示されます。編集モードでない時はディスクロージャーインジケーターという、灰色の>が表示されます。ちなみにアクセサリーの種類は以下の4種類です。
UITableViewCellAccessoryNone:何も表示しません。
UITableViewCellAccessoryDisclosureIndicator:灰色の>を表示します。
UITableViewCellAccessoryDetailDisclosureButton:青丸に>記号が入ったボタンが表示されます。
UITableViewCellAccessoryCheckmark:チェックマークを表示します。
なお、以前の記事「前回起動時の選択項目にチェックマークを付ける」に書いたように、セルのプロパティ(accessoryType)を直接設定する方法もあります。この命令は初期設定用として、表示してからの動的な変更にaccessoryTypeを使うようにすると良いでしょう。
2009年11月7日追記
iPhone OS 3.0以降では上記のtableView:accessoryTypeForRowWithIndexPath:は使用できません。今のところは一応動きますが、ビルド時に警告が出るようになります。この場合はtableView:cellForRowAtIndexPath:内でUITableViewCellのプロパティaccessoryTypeとeditingAccessoryTypeを用いて通常及び編集時のアクセサリーを設定すると良いでしょう。
- (UITableViewCellAccessoryType)tableView:(UITableView *)tableView accessoryTypeForRowWithIndexPath:(NSIndexPath *)indexPath
{
return (self.editing) ? UITableViewCellAccessoryDetailDisclosureButton :
UITableViewCellAccessoryDisclosureIndicator;
}
UITableViewCellAccessoryNone:何も表示しません。
UITableViewCellAccessoryDisclosureIndicator:灰色の>を表示します。
UITableViewCellAccessoryDetailDisclosureButton:青丸に>記号が入ったボタンが表示されます。
UITableViewCellAccessoryCheckmark:チェックマークを表示します。
なお、以前の記事「前回起動時の選択項目にチェックマークを付ける」に書いたように、セルのプロパティ(accessoryType)を直接設定する方法もあります。この命令は初期設定用として、表示してからの動的な変更にaccessoryTypeを使うようにすると良いでしょう。
2009年11月7日追記
iPhone OS 3.0以降では上記のtableView:accessoryTypeForRowWithIndexPath:は使用できません。今のところは一応動きますが、ビルド時に警告が出るようになります。この場合はtableView:cellForRowAtIndexPath:内でUITableViewCellのプロパティaccessoryTypeとeditingAccessoryTypeを用いて通常及び編集時のアクセサリーを設定すると良いでしょう。
PR
Comment