151 votes

Pourquoi reste-t-il en surbrillance uitableview cellule ?

Ce qui provoquerait une cellule tableview rester en surbrillance après avoir été touché ? Je clique sur la cellule et peut voir qu’il reste en surbrillance, comme une vue de détail est Poussée. Une fois que la vue de détail est sortie, la cellule est toujours en surbrillance.

268voto

paulthenerd Points 6568

Dans votre didSelectRowAtIndexPath, vous devez appeler deselectRowAtIndexPath pour désélectionner la cellule.

Donc tout ce que vous faites en didSelectRowAtIndexPath vous suffit il appeler deselectRowAtIndexPath ainsi.

63voto

Danail Points 3309

Pour le faire, la plus propre consiste sur viewWillAppear :

De cette façon vous avez l’animation de graduel de la sélection lorsque vous revenez sur le contrôleur, comme il se doit.

Tiré de http://forums.macrumors.com/showthread.php?t=577677

20voto

HansPinckaers Points 1367

Avez-vous la sous-classe ? Le UITableViewCell sélectionné ne désélectionnez l’option lorsque vous n’appelez pas dans votre méthode personnalisée.

8voto

Shantanu Points 1296

Si vous utilisez un UITableViewCell, puis commenter la ligne suivante

J’espère que cela aide.

2voto

Je recevais ce problème aussi bien pour mon exploration de l'application. Après un viewcontroller, que je vais appeler VC, revient après avoir pousser un autre ViewController, la cellule sélectionnée dans VC est resté en surbrillance. Dans mon application, j'avais créé VC pour gérer le deuxième niveau (sur trois niveaux) de mon exploration.

Le problème dans mon cas est que le CR a été un UIViewController (qui contenait une Vue qui contenait une TableView). J'ai plutôt fait de CR un UITableViewController (qui contenait une TableView). Le UITableViewController classe gère automatiquement la de-mise en évidence de la cellule de tableau, de retour après une poussée. La deuxième réponse à la poste "Problème avec deselectRowAtIndexPath dans tableView" donne une réponse plus complète à ce problème.

Le problème ne se produit pas pour la racine viewcontroller parce que quand j'ai créé l'application comme une "Navigation à base de App" dans XCode, la racine viewcontroller a déjà été fait à la sous-classe UITableViewController.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X