iphone - tableviewcontroller - Cómo actualizar un UITableVIewCell sin volver a cargar la tabla completa
uitableviewcell swift 4 (6)
A medida que realiza una actualización de la GUI, es mejor usar reloadData en lugar de usar cualquier otro método. reloadData es la mejor manera en su caso para actualizar el UITableView
ya que evita la inconsistencia. La otra cosa que puede hacer es agregar una condición en su cellForRowAtIndexPath
y permitir que la ejecución ocurra solo para la celda modificada.
Posible duplicado:
¿Es posible actualizar un solo UITableViewCell en un UITableView?
En una secuencia, estoy actualizando solo un objeto en particular en mi lista de datos (NSMUtableArray), una vez actualizado su valor, Para actualizar la GUI, me volví a cargar la tabla completa como se muestra a continuación ...
[table reloadData];
Funcionó bien. Sin embargo, en cuanto a la eficiencia, se cuelga un poco mientras estoy desplazando. ¿Hay alguna forma de actualizar solo una celda en particular sin volver a cargar la tabla completa?
Gracias.
Puede recargar una fila de imagen particular usando la ruta de índice.
[mainTableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationNone];
Puedes usar esto ..
NSArray *indexPathArray = [NSArray arrayWithObject:[NSIndexPath indexPathForRow:1 inSection:0]];
//You can add one or more indexPath in this array...
[tblview reloadRowsAtIndexPaths:indexPathArray withRowAnimation:UITableViewRowAnimationFade];
Si solo está agregando un elemento y desea que se agregue a la tabla, puede insertarlo manualmente en su UITableView, aquí hay un ejemplo:
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:_directions.count-1 inSection:0];
NSArray *indexPaths = [NSArray arrayWithObject:indexPath];
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:YES];
Usted puede obtener el objeto de la celda por -
UITableViewCell *cell = [table cellForRowAtIndexPath:indexPath];
ahora cambie sus valores relacionados según su objeto desde la matriz de datos. Debe reflejarse en la tabla. Espero que esto ayude.
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;
Utilizar esta