Domanda

Sto usando il seguente metodo nella mia applicazione:

- (UITableViewCell *)tableView:(UITableView *)tblView cellForRowAtIndexPath:(NSIndexPath *)indexPath

In questo metodo usando indexPath.row posso ottenere il numero di riga di ogni riga.

Ma voglio effettivamente accedere alla cella in quella riga e fare un po 'di formattazione solo su quella cella.

Per favore guidami.

È stato utile?

Soluzione

Forse c'è un malinteso. Il metodo che stai citando dovrebbe dire a tableView quale riga visualizzare in quel indexPath. Quindi, ogni volta che tableView richiede questo metodo, lo fa perché non ci sono ancora righe in questo indexPath.

Il codice modello genererà una nuova cella o ne eliminerà una:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

     static NSString *CellIdentifier = @"Cell";

     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
     if (cell == nil) {
              cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
     }

Puoi quindi accedere a cella per configurare il contenuto di ogni cella o aggiungere contenuto a contentView.

Se manipoli la formattazione di una cella per riga (ad es. il colore di cell.textLabel), dovresti farlo nel seguente metodo delegato:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

Altri suggerimenti

Mentre le altre risposte funzioneranno bene, ma cambierà semplicemente la cella su cui l'utente ha toccato. Per il mio caso, volevo cambiare anche le altre celle. Dopo aver cercato in giro, ho provato:

[[tableView cellForRowAtIndexPath:5 setAccessoryType:UITableViewCellAccessoryNone];

NON funziona, poiché IndexPath non è un numero intero. (indexpath.row è, tuttavia). Quindi, cercando il documento, ho scoperto che possiamo usare NSIndexPath per codificare una riga Valore NSIndexPath. Ecco il codice di lavoro:

[[tableView cellForRowAtIndexPath: [NSIndexPath indexPathForRow:5 inSection:0]] setAccessoryType:UITableViewCellAccessoryNone];

In questo modo, puoi accedere alla cella OVUNQUE, IN QUALSIASI FILO / SEZIONE, a condizione che tu abbia l'oggetto tableview.

Spero che questo aiuti qualcuno.

Puoi accedere a una cella visibile usando il metodo UITableView -cellForRowAtIndexPath . Da UITableView riferimento:

- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath
  

Valore di ritorno
Un oggetto che rappresenta a   cella della tabella o nulla se la cella   non è visibile o indexPath non è attivo   gamma.

Tuttavia (IMO) cellForRowAtIndexPath è il posto migliore per l'installazione di una cella.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top