Tengo una UITableViewCell personalizada que muestra varios atributos de un objeto Person (respaldado por datos centrales) ... algunas etiquetas, imágenes, etc. Actualmente fuerzo a toda la tabla para volver a cargar cada vez que cambia alguna propiedad, y eso obviamente no es eficiente. Sé con KVO que debería poder agregar un oyente a una etiqueta en la celda que pueda escuchar los cambios en las propiedades de la persona. Pero no estoy seguro de cómo implementarlo y no puedo encontrar ningún ejemplo.agregando KVO a UITableViewCell
Esto es lo que normalmente hago en cellForRowAtIndexPath de mi UITableView:
- (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath
{
static NSString *simple = @"CustomCellId";
CustomCell *cell = (CustomCell *) [tableView dequeueReusableCellWithIdentifier:simple];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
for (id findCell in nib)
{
if ([findCell isKindOfClass: [CustomCell class]])
{
cell = findCell;
}
}
}
Person *managedObject = [self.someArray objectAtIndex: indexPath.row];
cell.namelabel.text = managedObject.displayName;
return cell;
}
La célula está conectado en IB. Me gustaría detectar cuándo cambia el día y actualizar solo la etiqueta del nombre. Gracias
Creo que lo tengo, gracias a su ayuda. Publica el código a continuación, pero te acreditará con la respuesta. –
Es un error observar cualquier ruta clave no documentada explícitamente para ser compatible con KVO. No puedes observar el 'texto' de una etiqueta. –
Si no me equivoco, no se debe observar la 'celda', ¡sino el objeto' Persona'! ¡Porque el objeto podría cambiar y la célula debería responder! –