/ / Disattivazione dei segni di spunta in UITableView Static Cells: obiettivo-c, xcode, uitableview

Disattivazione dei segni di spunta in UITableView Static Cells: obiettivo-c, xcode, uitableview

Ho un UITableView con 5 celle a gruppi singoli,consentendo agli utenti di accedere a ulteriori schermate specifiche da ciascuna opzione. Gli utenti torneranno a questa schermata e voglio poter posizionare un segno di spunta sull'ultima cella selezionata e disattivare tutti i segni di spunta precedenti.

Sto cercando di ottenere questo in didSelectRowAtIndexPath: ma non riesco a farlo bene.

Ci sono alcune risposte disponibili per le celle dinamiche ma nulla per statico, qualcuno può aiutare con questo?

risposte:

2 per risposta № 1

Ci sono diversi modi per gestirlo, mauna delle cose più facili da fare è memorizzare i riferimenti alle celle in una raccolta in modo da poter facilmente inviare messaggi a tutte le celle. Ad esempio, è possibile aggiungere una proprietà come la seguente:

@property (strong, nonatomic) IBOutletCollection (NSArray) * celle;

@property (strong, nonatomic) IBOutletCollection(UITableViewCell) NSArray *cells;

e collegarlo a ciascuna delle celle nel file o nello storyboard del pennino. (Se non si utilizza Interface Builder, rilasciare il IBOutletCollectione compilare l'array autonomamente ovunque crei le celle).

Quindi puoi gestire la selezione come segue:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
for (UITableViewCell *currCell in self.cells)
{
currCell.accessoryType = UITableViewCellAccessoryNone;
}

UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
selectedCell.accessoryType = UITableViewCellAccessoryCheckmark;
}

1 per risposta № 2

La sintassi corretta per IBOutletCollection è:

@property (strong, nonatomic) IBOutletCollection(UITableview) NSArray *cells;