2012-08-13 3 views
1

J'ai plusieurs cellules sélectionnées dans un UITableView, mais elles sont automatiquement désélectionnées après l'édition. J'ai cherché un peu et j'ai vu des gens dire qu'ils appelaient 'reloadData' qui a causé la suppression des sélections, mais je n'appelle pas reloadData n'importe où sauf dans 'viewDidAppear'. Ils sont désélectionnés même si l'édition a été annulée sans rien changer (en cliquant sur le bouton 'edit' de la barre d'outils puis en cliquant sur le bouton 'done' sans aucune modification). Je ne suis pas sûr de l'endroit où cela se passe. Ou, si je pouvais détecter quand l'édition était terminée (quand le bouton 'terminé' a été cliqué), je pouvais simplement resélectionner toutes les cellules qui avaient été sélectionnées, mais je ne suis pas sûr de savoir comment je pouvais le détecter .. Comment pourrais-je empêcher les cellules d'être désélectionnées? Ou resélectionner les cellules après l'édition?UITableView désélectionne les cellules sélectionnées après l'édition

Merci d'avance.

+0

envoyer votre code source – Rams

Répondre

0

Nevermind. J'ai découvert que - (void)setEditing:(BOOL)editing animated:(BOOL)animated est appelé chaque fois que le bouton 'edit' ou 'done' a été cliqué.

0

Je suggère que le meilleur pari est juste de les resélectionner après chaque pression sur votre bouton "fait".

Il est tout à fait normal que les cellules soient désélectionnées ou que les boutons ne soient pas pressés, puisque c'est leur état normal - sauf si vous écrivez votre propre code pour le changer - comme dans votre cas.

Voici comment sélectionner une ligne:

[tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone]; 

Si vous avez plusieurs lignes qui peuvent être sélectionnés assurez-vous que les paramètres en conséquence, sinon il peut toujours désélectionner mais les lignes les plus récentes.

+0

Merci pour la réponse. Je sais comment sélectionner des lignes mais comment puis-je détecter quand le bouton 'terminé' a été cliqué? – Dennis

1

Je suppose que vous essayez d'obtenir une sélection et une désélection lorsque vous appuyez sur un bouton. Si vous essayez de modifier l'état de la sélection dans UITableViewCell, essayez d'utiliser la méthode dans l'action du bouton.

-(IBAction) someAction { 
    if(buttonToggled){ 
    [tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone]; 
    }else{ 
    //Do something 
    } 
} 

pour changer la couleur de fond.

cell.selectionStyle = UITableViewCellSelectionStyleGray; 
cell.selectedBackgroundView.backgroundColor=[UIColor blackColor]; 

Pour plus d'informations sur le ci-dessus s'il vous plaît vérifier le lien.

UITableView Cell selected Color?

Questions connexes