Puedo seleccionar filas en tableView.rx pero me pregunto cómo obtener una matriz de selección final. Me refiero a la matriz de resultados de seleccionar algunas filas y luego anular la selección de algunas filas.
Aquí está mi código:
Observable.zip(tableView.rx.modelSelected(Country.self), tableView.rx.itemSelected).subscribe(onNext: { (selectedCountry, indexPath) in print("2 selected Country is \(selectedCountry) and indexPath is \(indexPath.row)") self.selectedCountries.append(selectedCountry)También quiero ver las filas seleccionadas como marcadas.
Agradezco su ayuda. Gracias
Primero tienes que usar esto:
tableView.allowsMultipleSelection = trueEntonces podrías usar estos para hacer lo que quieras:
let selectedItems = tableView.rx.modelSelected(Country.self).subscribe { item in print("selected: \(item)") print("selected rows: \(self.tableView.indexPathsForSelectedRows)") } let deselectedItems = tableView.rx.modelDeselected(Country.self).subscribe { item in print("deselected: \(item)") }Esto producirá una matriz Observable de indexPaths:
tableView.allowsMultipleSelection = true let selectedItems = Observable.merge( tableView.rx.itemSelected.asObservable(), tableView.rx.itemDeselected.asObservable() ) .flatMap { [tableView] _ in Observable.just(tableView.indexPathsForSelectedRows ?? []) }