2011-10-17 15 views
11

Sto mettendo insieme una stringa di ricerca basata su 4 tableviewcells, ogni cella apre una sottoview e carica un gruppo di dati che l'utente seleziona per impostare la cella della vista precedente.come rendere uitableviewcell non selezionabile

Esiste un ordine in cui queste celle devono essere impostate in modo che ogni precedente elenco di dati nella sottoview sia correlato al set di dati nella visualizzazione padre.

cioè nella prima cella si seleziona un tipo di auto, nella cella successiva si guardano i modelli relativi al tipo di auto scelta.

A parte la base della mia domanda è come faccio a rendere una cella non selezionabile fino a quando la cella/le precedenti sono state impostate.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
//... 
if (indexPath.section == 0) 
    { 

if (indexPath.row == 0) // <<--- what could I put in here.... 
     { 
//... 
} 

}}

risposta

26

impedite al cellulare per tenere traccia di ogni interazione:

[cell setUserInteractionEnabled:NO]; 

o consentire l'interazione, nascondendo il colore della selezione, e quando si fa clic, non fare nulla.

[cell setSelectionStyle:UITableViewCellSelectionStyleNone]; 

- (void) tableViewDidSelectRow.... { 
    if(indexPath.row == indexOfCellWithNoUserInteraction) { 
     //do nothing 
    } 
} 
+0

C'è un modo per cambiare il colore della cella fino alla sua possibile modificarlo? –

+0

Cosa intendi fino a quando è possibile modificarlo? –

+0

è tutto ok .. l'ho capito. Quello che volevo dire era un modo per dire avere una cella grigio chiaro fino a quando non incontra una condizione e poi cambiarla in bianco in modo che l'utente sappia che ora può selezionare questa cella. ma lo hai capito .. tutto bene ora: P –

2

Swift Sintassi

cell.selectionStyle = UITableViewCellSelectionStyle.None 
+0

Ciò non lo rende non selezionabile; solo UIKit non renderà l'evidenziazione quando viene toccato. 'didSelectRow ...' sarà ancora chiamato. –

Problemi correlati