ho spesso bisogno di impostare vista tavolo cellule ad uno stato selezionato iniziale per cui io uso il seguente codice:Selezionare una cella di vista della tabella di programmazione: selectRowAtIndexPath vs setSelected
[self.tableView selectRowAtIndexPath:indexPath
animated:NO scrollPosition:UITableViewScrollPositionNone];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
[cell setSelected:YES];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
Sto usando selectRowAtIndexPath:indexPath
e setSelected:YES
allo stesso tempo, perché non comprendo appieno quale dei due modi sia il modo preferito per selezionare una cella a livello di programmazione.
Quale delle frasi dovrei usare e perché?
Grazie, @Nicky! Dopo aver usato 'selectRowAtIndexPath: animated: scrollPosition:' Vorrei ricaricare la tabella e impostare il segno di spunta in 'cellForRowAtIndexPath' a seconda dello stato di selezione della cella (' isSelected')? – AlexR
Bene, di solito memorizzo l'elemento con segno di spunta in una proprietà separata, sembra più esplicito. Quindi, in 'tableView: didSelectRowAtIndexPath:' fai quanto segue: ricarica due righe, quella precedentemente spuntata e l'utente cliccato (senza animazione), seleziona la riga cliccata (anche senza animazione), quindi deseleziona l'animazione in modo da ottenere un bell'effetto visivo Tutto fatto chiamando i metodi della vista tabella. – Nicky
È necessaria una selezione aggiuntiva perché la cella la perderà dopo essere stata ricaricata. Si può semplicemente impostare il tipo di accessorio lì e stare bene senza ricaricare/selezionare, anche se preferisco non duplicare alcuna parte della logica di configurazione della cella. Chissà, forse domani userò fantasiosi segni di spunta personalizzati o qualche altra roba pazzesca :) – Nicky