często trzeba ustawić widok tabeli komórki do początkowego wybranego stanu, dla którego używam następujący kod:Wybierz komórkę widoku tabeli programowo: selectRowAtIndexPath vs setSelected
[self.tableView selectRowAtIndexPath:indexPath
animated:NO scrollPosition:UITableViewScrollPositionNone];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
[cell setSelected:YES];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
używam selectRowAtIndexPath:indexPath
i setSelected:YES
w taki sam czasie, ponieważ nie w pełni rozumiem, który z obu sposobów jest preferowanym sposobem programowego wybierania komórki.
Którą z tych instrukcji należy użyć i dlaczego?
Dziękuję, @Nicky! Po użyciu 'selectRowAtIndexPath: animated: scrollPosition:' Chciałbym ponownie załadować tabelę i ustawić znacznik wyboru w 'cellForRowAtIndexPath' w zależności od stanu zaznaczenia komórki (' isSelected')? – AlexR
Cóż, zwykle przechowuję zaznaczone elementy w oddzielnej usłudze, to wydaje się bardziej wyraźne. Tak więc w 'tableView: didSelectRowAtIndexPath:' wykonaj następujące czynności: wczytaj dwa wiersze, poprzednio zaznaczone i jeden użytkownik kliknął (bez animacji), zaznacz kliknięty wiersz (także bez animacji), a następnie odznacz go jako animowane, aby uzyskać ładny efekt wizualny. Wszystko to odbywa się poprzez wywołanie metod widoku tabeli. – Nicky
Potrzebny jest dodatkowy wybór, ponieważ komórka utraci ją po ponownym załadowaniu. Możesz po prostu ustawić typ akcesoriów i bez problemu przeładować/wybrać, chociaż wolę nie powielać żadnej części logiki konfiguracji komórki. Kto wie, może jutro będę używał fantazyjnych niestandardowych znaków kontrolnych lub innych szalonych rzeczy :) – Nicky