Tengo una vista de tabla con secciones, que se pueden abrir y cerrar. Entonces, cuando toco una sección para abrirla, se está llenando de celdas y se llama a -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)
exactamente tantas veces como las proporcioné en -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
.tableView: cellForRowAtIndexPath: recibe una llamada no solo para las celdas visibles?
¿Es correcto? ¿No debería ser solo el número de celdas visibles?
Porque en mi caso tengo una mala situación: tengo un montón de celdas personalizadas (50 ~ 100 celdas) y llamar a -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)
para cada celda ralentiza la apertura de una sección, porque cada vez que se lee y se realiza la celda el contenido se está rellenando con la imagen. he visibilidad de verificación de la celda dentro de -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)
como esto:
if ([[self.tableView indexPathsForVisibleRows] containsObject:indexPath])
NSLog(@"visible %@", indexPath);
y muestra que a partir de 45 células, solamente 6 o 7 son visibles. Otros están fuera del área visible. Pero aún se crean células. Aquí está el código:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"IVCell";
IVCamera *camera = [server.cameras objectAtIndex:indexPath.row];
IVServerListViewCell *cell = (IVServerListViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"IVServerListCell" owner:self options:nil];
cell = (IVServerListViewCell*)_tableViewCell;
self.tableViewCell = nil;
}
[cell textLabel].text = camera.cameraName;
cell.preview = camera.preview;
cell.userData = camera;
cell.isEnabled = (server.isInactive)?NO:camera.isOnline;
return cell;
}
¿Sigue siendo correcta? ¿O me estoy perdiendo algo?
que era increíble, yo también tenía un problema como este, su técnica era tan útil que el problema está resuelto. – Ananth
@Ananth eres bienvenido! =) – peetonn