2011-02-07 26 views
12

¿Es esto posible? Para volver a cargar solo las celdas que son visibles para hacerlo más eficiente.reloadData solo en tableView celdas visibles

Gracias por su tiempo.

+0

¿Qué hay de proporcionar algún contexto? ¿Qué idioma/framework/library/algo? –

+0

Oh, lo siento. Estoy programando en lenguaje Objective-C (iOS SDK 4.0) – Samui

Respuesta

23

Así es como funcionan las vistas de tabla de forma predeterminada. La clase UITableView nunca carga células hasta que están a punto de aparecer en pantalla, incluso cuando llamas al reloadData.

+0

Gracias jlehr, tienes razón. ¡Me olvidé de ese detalle! – Samui

+0

jlehr @ le puede proporcionar cualquier referencia –

8

Prueba de esto, usted puede volver a cargar en cualquier celda de la tableview usando reloadRowsAtIndexPaths:

[self.tableView beginUpdates]; 
[self.tableView reloadRowsAtIndexPaths:[self.tableView indexPathsForVisibleRows] 
       withRowAnimation:UITableViewRowAnimationNone]; 
[self.tableView endUpdates]; 
+0

sólo encontré siguientes lugares puede usar 'reloadRowsAtIndexPaths': - (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath - (IBAction) unwindToMealList: (UIStoryboardSegue *) remitente –

5

para recargar las células visibles de tableview en Swift 3.0:

pTableView.beginUpdates() 

pTableView.reloadRows(at: 
pMessagesTableView.indexPathsForVisibleRows!, with: .none) 

pTableView.endUpdates() 
Cuestiones relacionadas