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;
8 Réponses :
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;
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 / ...
Mettre en œuvre cette méthode:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
Essayez ceci Et vous pouvez implémenter tableview.allowselection = oui; code> p>
- (nsindexpath *) TableView: (UitaireView *) TableView Willelectrowatudexpath: Code> P>
Dans votre UitailViewCell personnalisé, ajoutez-vous BTN, TextFields, etc. à contenuView? p>
Peut-être que si vous ajoutez tout au contenuView, cela devrait résoudre votre problème. J'espère que cela aide. P>
S'il vous plaît partager du code. Comment créez-vous l'UitailViewCell personnalisé?
Ceci est un exemple pour un utableview personnalisé code>
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.
n'oubliez pas d'utiliser: p> dans Vincentsawesomecell.m: strong> p> pour réinitialiser les propriétés des cellules pour la réutilisation. p> puis dans votre tableViewController.m: p> comme pour le p> [[cell stepper]setTag:indexPath.row];
[[cell stepper]addTarget:self action:@selector(stepperChanged:) forControlEvents:UIControlEventValueChanged];
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! : -) p>
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.
J'ai eu un problème similaire. Résolu, mais ajouter
self.clipsToBounds = YES;
iOS HIG: "Applications répondent aux gestes, non clics" i> 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.