J'ai implémenté UITableView où chaque cellule contient des boutons Pour détecter si l'utilisateur appuie sur la table j'ai ajouté UITapGestureRecognizer.UITapGestureRecognizer n'annule pas le tap sur les éléments UITableView
Je veux que les boutons dans les cellules ne fassent rien lorsque l'utilisateur tape dessus. J'ai mis en place ce sélecteur:
- (void) backgroundTouched:(UITapGestureRecognizer*)sender {
UIView *view = sender.view;
NSLog(@"backgroundTouched %@", view);
}
Je vois que quand je tape partout sur la table ce sélecteur est appelé, sauf si je tape sur l'un des boutons contenus dans le UITableViewCell.
Comment puis-je éviter cela?
Voici le code qui crée la UITapGestureRecognizer:
pragma mark UISearchControllerDelegate
- (void)didPresentSearchController:(UISearchController *)searchController
{
NSLog(@"didPresentSearchController");
self.cancelGesture = [UITapGestureRecognizer new];
[self.cancelGesture addTarget:self action:@selector(backgroundTouched:)];
self.cancelGesture.cancelsTouchesInView = YES;
[self.tableView addGestureRecognizer:self.cancelGesture];
}
Pl. effacer votre inquiétude, vous voulez désactiver le robinet sur la table ou le bouton? – Krunal
Bouton Désactiver. En ce moment, quand j'appuie sur le bouton, l'action est appelée et le sélecteur de gestes ne l'est pas. Je veux l'inverse – RuLoViC