J'ai activer la sélection multi-lignes et je suis capable d'ajouter des coches lorsque l'utilisateur touche les cellules spécifiques. Maintenant à la fin, je veux voir quelles lignes étaient sélectionnées et effectuer des actions en fonction des numéros de ligne. Comment puis-je obtenir ces détails / chiffres de ligne? Merci!
code utilisé pour sélectionner / désélectionner des lignes: p> puis dans le contrôleur de cellule: p> override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
accessoryType = selected ? UITableViewCell.AccessoryType.checkmark : UITableViewCell.AccessoryType.none
}
3 Réponses :
let rows = self.main_table.indexPathsForSelectedRows.map { $0.row }
J'ai mis cette déclaration dans un bloc d'impression et obtenu: facultatif ([[0, 0], [0, 1], [0, 2]]). Comment puis-je obtenir juste les rangées? J'ai regardé sur le lien ne pouvait rien trouver
Pour obtenir uniquement les lignes, vous pouvez exécuter cela à travers une carte: laisser des lignes = self.main_table.indexpathsforselectedwows? .Map {$ 0.row} code>
@Pradaclawed. Lorsque vous sélectionnez Cell CODE> ON DISSELLECT CODE> Méthode Vous pouvez ajouter indexPath.row CODE> ou des données de ligne sélectionnées dans la matrice et supprimez lorsque désélectionne code >. Maintenant, vous pouvez travailler sur les données sélectionnées sur la cellule code>. P>
Tout d'abord, évitez d'utiliser Staminscore ( Suivant, pour obtenir juste les lignes code> du code> du _ code>) notation em> pour déclarer les variables dans Swift em>. Utilisez plutôt casage de chameau em>. indexPays code> dans le TableView code>, utilisez indexpathsforselecteRows code> strong> et map (_:) code> strong> comme SO, P> if let selectedRows = self.tableView.indexPathsForSelectedRows?.map({ $0.row }) {
print(selectedRows)
}