Pour autant que je sais qu'il n'y a aucun moyen de le faire.
J'ai fini par implémenter une vue personnalisée complète pour mon accessoireView. Il est également plus facile de le changer lors de l'interaction de l'utilisateur et de décider de la zone de tappable, que je trouve souvent trop petit. Je suppose que vous pourriez faire avec juste un bouton si vous n'avez pas besoin de différents points de vue.
J'ai fait un customView, placé un bouton transparent à l'intérieur. Ce point de vue ajouter à la cellule:
CustomDisclosureArea *disArea = [[CustomDisclosureArea alloc] init];
[disArea setFrame:CGRectMake(280.0f, 0.0f, 40.0f, 71.0f)];
[disArea setTag:DISCLOSURE_ID];
[disArea.emptyButton addTarget:self action:@selector(cellButtonHandler:event:) forControlEvents:UIControlEventTouchUpInside]; //this the button inside the view.
[cell.contentView addSubview:disArea];
[disArea switchToState:AreaStateBlank]; //I can set it to different states (blank, checkmark, empty etc.
[disArea release];
Maintenant, la méthode qui est appelée lorsque le accessoryView est exploité est un peu spécial car nous avons besoin de savoir quelle cellule a été exploité.
- (void) cellButtonHandler:(id)sender event:(id)event {
NSSet *touches = [event allTouches];
UITouch *touch = [touches anyObject];
CGPoint currentTouchPosition = [touch locationInView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint: currentTouchPosition];
}
Mais vous vous retrouvez avec un NSIndexPath, qui est la même chose que vous obtiendrez dans un didSelectRow ou méthode et accessoryButtonTapped.
Hope this helps si vous décidez de faire un accessoryView personnalisé :)
merci beaucoup. Des pièces comme celles-ci me font me demander pourquoi la pomme ne mange pas sa propre nourriture et remplit l'accessoireVoir quand je définis le style. ;-) – Sebastian