Pregunta

Estoy usando el siguiente método en mi aplicación:

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

En este método, utilizando indexPath.row puedo obtener el número de fila de cada fila.

Pero quiero acceder a la celda en esa fila y hacer algún formato solo en esa celda.

Por favor guíame.

¿Fue útil?

Solución

Tal vez hay un malentendido. Se supone que el método que está citando le dice a tableView qué fila mostrar en esa indexPath. Por lo tanto, siempre que tableView solicite este método, lo hace porque todavía no hay una fila en esta indexPath.

El código de la plantilla generará una nueva celda o una dequeue:

- (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];
     }

Luego puede acceder a cell para configurar el contenido de cada celda o agregar contenido a la vista de contenido.

Si manipula el formato de una celda por fila (por ejemplo, el color del cell.textLabel), debe hacer esto en el siguiente método de delegado:

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

Otros consejos

Mientras que las otras respuestas funcionarán bien, pero solo cambiará la celda que el usuario pulsó. En mi caso, yo también quería cambiar las otras células. Después de buscar alrededor, lo intenté:

[[tableView cellForRowAtIndexPath:5 setAccessoryType:UITableViewCellAccessoryNone];

Esto NO funciona, porque IndexPath no es un número entero. (indexpath.row es, sin embargo). Entonces, al buscar el documento, descubrí que podemos usar NSIndexPath para codificar una fila en Valor NSIndexPath. Aquí está el código de trabajo:

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

De esta manera, puede acceder a la celda EN CUALQUIER LUGAR, EN CUALQUIER FILA / SECCIÓN, siempre que tenga el objeto de vista de tabla.

Espero que esto ayude a alguien.

Puede acceder a una celda visible utilizando el método UITableView -cellForRowAtIndexPath . De la UITableView referencia:

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

Valor de retorno
Un objeto que representa un   celda de la tabla o nula si la celda   no es visible o indexPath está fuera de   rango.

Sin embargo,

(IMO) cellForRowAtIndexPath es el mejor lugar para la configuración de una celda.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top