Sono un po 'confuso circa gli accessori della cella di visualizzazione tabella delle impostazioni.UITableViewCell Tipo di accesso selezionato Toccare e impostare altro deselezionato
ho fissato due sezioni in mia tabella
- casa
- Ufficio
Quello che voglio è la seguente ....
- Quando toccare utente qualsiasi la cella
- La cella viene selezionata &
- voglio impostare controllato (impostare il tipo di UITableViewCell accessorio -checked di cellula sfruttato)
- E anche tipo di accessorio di tutti gli altri cellulare ora deve impostare a
- vista uitable tipo di accessorio cellule nessuno
Ho provato il seguente codice. Ma ho trovato che indexpath.row & indexpath.section è proprietà readonly.
// Override to support row selection in the table view.
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tblProfileView deselectRowAtIndexPath:indexPath animated:YES];
int i,max;
UITableViewCell *x; NSIndexPath *tt;
for(i=0;i<[tblProfileView numberOfRowsInSection:0];i++)
{
tt.row=i; tt.section=0;
x=[tblProfileView cellForRowAtIndexPath:];
[x setAccessoryType:UITableViewCellAccessoryNone];
}
for(i=0;i<[tblProfileView numberOfRowsInSection:1];i++)
{
tt.row=i; tt.section=1;
x=[tblProfileView cellForRowAtIndexPath:tt];
[x setAccessoryType:UITableViewCellAccessoryNone];
}
x=[tblProfileView cellForRowAtIndexPath:indexPath];
[x setAccessoryType:UITableViewCellAccessoryCheckmark];
// Navigation logic may go here -- for example, create and push another view controller.
// AnotherViewController *anotherViewController = [[AnotherViewController alloc] initWithNibName:@"AnotherView" bundle:nil];
// [self.navigationController pushViewController:anotherViewController animated:YES];
// [anotherViewController release];
}
Questo non è il modo giusto per farlo, poiché si chiama reloadData (che può essere costoso a seconda dei dati). Puoi semplicemente: lasciare cell = tableView.cellForRowAtIndexPath (indexPath) cell? .accessoryType = (yourTest)? .Controlla: .Nessuno – Max
In realtà devi fare quasi entrambe le cose. Esegui l'aggiornamento direttamente come indicato da Max e configura la cella in cellForRowAtIndexPath o gli stati della cella vengono confusi quando si scorre l'elenco. – marsbear
Oh e implementare anche didDeselectRowAtIndexPath in modo da poter deselezionare nuovamente le celle. – marsbear