Malheureusement, "accessoryTypeForRowWithIndexPath" a été abandonné.
L'indice du comportement différent (entre UITableViewCellAccessoryDisclosureIndicator et UITableViewCellAccessoryDetailDisclosureButton) est que l'INDICATEUR de divulgation ne «suit» pas alors que le BOUTON de divulgation «suit».
Qu'est-ce que vous auriez à faire est de fournir votre propre reconnaissance de l'utilisateur lorsque exploité dans la cellule et l'utiliser dans le cadre du code supplémentaire pour ensuite appeler dans votre
- (void)tableView:(UITableView*) tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath*) indexPath
routine - qui est ce qui se passe avec le BOUTON de divulgation.
Vous pouvez utiliser quelque chose comme un UITapGestureRecognizer attaché à un AccessoryView dans votre cellule personnalisée. Cette chose est normalement NIL, de sorte que vous auriez besoin d'ajouter un UIView dans la cellule via IB ou par programmation - le redimensionner - et le connecter à votre objet cellulaire. Ensuite, vous ajouterez du code à la fonction - (id)initWithStyle:(UITableViewCellStyle) style reuseIdentifier:(NSString*) reuseIdentifier
de votre cellule personnalisée.
L'idée générale est présentée ci-dessous.
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]
initWithTarget:myAccessoryView action:@selector(didTap:)];
tapGesture.delegate = (id <UIGestureRecognizerDelegate>)myTableViewControllerDelegate;
[containerView addGestureRecognizer:tapGesture];
[tapGesture release];
Le « didTap: » fonction transmettra ensuite votre code ou à faire exactement ce que vous pourriez avoir fait dans l'autre routine.
Il est triste que les trois différents accessoires soient traités différemment. Donc, si vous ne voulez pas d'un truc bleu géant dans votre cellule, il semblerait que vous deviez trouver du code supplémentaire pour que les choses fonctionnent comme vous le souhaitez. L'un des avantages de l'utilisation d'AccessoryView dans votre cellule personnalisée est que vous pouvez placer une UIImageView dans la vue, puis déposer une image dans UIImageView, ce qui signifie que vous pouvez utiliser n'importe quelle image par rapport à la simple ">".