6
votes

Uableviewcell n'est pas cliquable

J'ai un utableviewcell personnalisé avec beaucoup de boutons, de champs de texte, d'étiquettes et d'une vue. Je me cache et je leur montre où ils sont requis sur chaque index. Mais pour certaines lignes de raison / s ne sont pas cliquables!

J'ai même fait les choses suivantes via le code pour vous assurer que si quelque chose se passe de poisson dans IB, il peut être fixé via ces lignes mais sans utilisation. P>

cell.selectionStyle = UITableViewCellSelectionStyleBlue;
cell.userInteractionEnabled = YES;


4 commentaires

iOS HIG: "Applications répondent aux gestes, non clics" développeur.apple.com/library/ios/documentation/userExpérience / ...


@ Phix23 - Yah mais comment il est appliqué dans mon cas?


Définissez l'objet personnalisé userActionAcédentEnabled est NON


Pouvez-vous poster le code concerné où vous ajoutez tout à la cellule? Savoir où et comment vous manipulez chaque cellule aiderait à déboguer le problème.


8 Réponses :


1
votes

Si votre vue de table est modifiable, cela pourrait être la raison pour laquelle les cellules ne sont pas cliquées sur

si c'est le cas et que vous avez besoin de cellules pour être cliquées lors de la modification - faites simplement ceci: P>

tableView.allowsSelectionDuringEditing = YES;


2 commentaires

Je peux sembler stupide pour vous, mais où je peux voir si la TableView est modifiable ou non?


Par défaut, la vue Tableau n'est pas modifiée. Le moyen facile de voir est que lorsque la table est en mode d'édition, vous verrez moins de connexion rouge dans le cercle rouge ou de la signature du cercle vert à côté des cellules du tableau. Vous pouvez créer une propriété modifiée de table "édition" de la propriété en true, mais vous devez également mettre en œuvre des méthodes supplémentaires afin de définir le style d'édition et de la manipuler l'édition elle-même, vous pouvez en lire ici: développeur.apple.com/Library / iOS / Documentation / Uikit / Référencez E / ...



0
votes

Mettre en œuvre cette méthode:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath


0 commentaires

6
votes

Essayez ceci tableview.allowselection = oui;

Et vous pouvez implémenter - (nsindexpath *) TableView: (UitaireView *) TableView Willelectrowatudexpath:


0 commentaires

1
votes

Dans votre UitailViewCell personnalisé, ajoutez-vous BTN, TextFields, etc. à contenuView?

Peut-être que si vous ajoutez tout au contenuView, cela devrait résoudre votre problème. J'espère que cela aide.


1 commentaires

S'il vous plaît partager du code. Comment créez-vous l'UitailViewCell personnalisé?



2
votes

Ceci est un exemple pour un utableview personnalisé xxx


0 commentaires

3
votes

J'utilise beaucoup d'éléments d'interface utilisateur différents dans mes UitablesViewCells aussi, pourquoi ne pas essayer de sous-classer uableviewcell et de rouler votre propre classe, avec les articles comme propriétés de la cellule? Semble travailler pour moi.

dans Vincentsawesomecell.h: strong> p> xxx pré>

n'oubliez pas d'utiliser: p>

dans Vincentsawesomecell.m: strong> p> xxx pré>

pour réinitialiser les propriétés des cellules pour la réutilisation. p>

puis dans votre tableViewController.m: p> xxx pré>

comme pour le p>

[[cell stepper]setTag:indexPath.row];
    [[cell stepper]addTarget:self action:@selector(stepperChanged:) forControlEvents:UIControlEventValueChanged];


0 commentaires

0
votes

Si vous ne pouvez pas vraiment faire le déclenchement du "DisSelectrowAwatedexpath" correctement, placez une grosse UIBUTTON occupant une cellule complète et effectuez les actions nécessaires dans le bouton Cliquez. Juste une idée! : -)


2 commentaires

Merci. Mais ce n'est pas possible car il y a des champs de texte dans la cellule.


Aucun problème, vous pouvez avoir le bouton derrière tous les éléments de contrôle, de sorte qu'il ne se déclenchera que lorsqu'il n'y a pas d'autres éléments à réagir.



0
votes

J'ai eu un problème similaire. Résolu, mais ajouter

self.clipsToBounds = YES;


0 commentaires