13
Więc pisałem ten kod, aby umieścić zaznaczenie obok rzędu, że chcę wybranej bo chcę wiele wybranych wierszyJak można uzyskać wybrane wiersze z UITableView?
UITableViewCell *cell = [tableView cellForRowAtIndexPath:path];
if (cell.accessoryType == UITableViewCellAccessoryCheckmark) {
cell.accessoryType = UITableViewCellAccessoryNone;
} else {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
ale kiedy używam metody:
NSArray *selectedIndexPaths = [self.LightsView indexPathsForSelectedRows];
to tylko dostaje ostatni wiersz, który kliknąłem. Czy znacznik wyboru nie wybiera?
Nie, wybrany jest wiersz, który został wykorzystany w ubiegłym i nie było jeszcze niezaznaczone. Nic wspólnego z akcesoriami do komórek. Musisz śledzić "wybrane" (nazwijmy je sprawdzone, to byłoby bardziej odpowiednie). –
Upewnij się także, że 'tablicaView: cellForRowAtIndexPath:' rozpoznaje, że komórki mogą być ponownie użyte, i jako takie będzie musiała zresetować 'akcesorType' dla wiersza, stosownie do potrzeb; nie próbuj polegać na 'accessoryType', aby wiedzieć, czy" sprawdziłeś "wiersz, czy nie. Miej oddzielny model, który wspiera twój widok tabeli, śledząc, które wiersze zostały "sprawdzone" i czy powyższy kod aktualizuje ten model, jak również interfejs użytkownika, i posiada 'tableView: cellForRowAtIndexPath:' odnoszą się również do tego modelu. – Rob