残念ながら、「accessoryTypeForRowWithIndexPath」は廃止されました。
異なる動作(UITableViewCellAccessoryDisclosureIndicatorとUITableViewCellAccessoryDetailDisclosureButtonの間)の手がかりは、開示INDICATORは「追跡」しないが、開示ボタンは「追跡」するということです。
何をする必要があるだろうことは、ユーザーがセルにタップどこの独自の認識を提供して、あなたの
- (void)tableView:(UITableView*) tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath*) indexPath
ルーチンを呼び出すために、追加のコードの一部としてそれを使用である - 何が起こるかであります開示ボタンで表示されます。
カスタムセルのAccessoryViewにUITapGestureRecognizerを付けたものを使用したい場合があります。これは通常NILですので、IBを介してUIViewをセルに追加するか、プログラムでサイズを変更してセルオブジェクトに接続する必要があります。次に、カスタムセルの- (id)initWithStyle:(UITableViewCellStyle) style reuseIdentifier:(NSString*) reuseIdentifier
関数にコードを追加します。
一般的な考え方を以下に示します。
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]
initWithTarget:myAccessoryView action:@selector(didTap:)];
tapGesture.delegate = (id <UIGestureRecognizerDelegate>)myTableViewControllerDelegate;
[containerView addGestureRecognizer:tapGesture];
[tapGesture release];
'didTap:'関数は、コードを転送するか、他のルーチンで行ったことを実行します。
3つの異なるアクセサリアイテムが異なる扱いを受けるのは残念です。だから、あなたのセルに巨大な青いものが欲しくないなら、あなたが望むように物事を動作させるためにいくつかの追加のコードを考えなければならないように見えます。
カスタムセルでAccessoryViewを使用する利点の1つは、UIImageViewをビューに配置し、UIImageViewに画像を配置できることです。つまり、単純な開示と対比して任意の画像を使用できます。