2009-12-06 2 views
4

Dans mon application, lorsqu'un utilisateur touche une cellule de table, la cellule est désactivée et le contrôle de réorganisation de la cellule disparaît. Si elles le touchent à nouveau, la cellule est activée et le contrôle de réorganisation réapparaît. La façon dont je suis en train de l'implémenter est en appelant reloadRowsAtIndexPaths: withRowAnimation :, mais c'est sloooowww. Si je change simplement la propriété showsReorderControl, rien ne se passe. J'ai eu un certain succès avec l'utilisation de setEditing: animated:, mais cela n'a pas fonctionné de manière cohérente. Des idées? Merci!Comment masquer le contrôle de réorganisation dans un UITableViewCell sans utiliser de rechargement?

Répondre

10

Ok, j'ai trouvé une solution. Je devais utiliser -tableView: canEditRowAtIndexPath: en plus de -tableView: canMoveRowAtIndexPath: et puis quand il est temps d'afficher ou de masquer le contrôle de réorganisation, j'ai utilisé les fonctions showsReorderControl et setEditing: animated: pour que tout fonctionne.

0

Le contrôle de réapprovisionnement ne doit être visible que lorsque la table est en mode d'édition. Pour l'afficher pour une ligne particulière, vous devez implémenter -tableView: canMoveRowAtIndexPath: dans la source de données de votre tableView. Il ne devrait pas y avoir de raison d'appeler -reloadData juste pour montrer ce contrôle.

+0

J'utilisais -tableView: canMoveRowAtIndexPath :, mais il me manquait -tableView: canEditRowAtIndexPath :. Désolé, j'aurais dû être plus clair à ce sujet. –

Questions connexes