Si llamo reloadRowsAtIndexPaths para la primera celda de una sección, con la sección anterior vacía y la anterior no vacía, obtengo un extraño error de animación (incluso si especifico "UITableViewRowAnimationNone") donde la celda recargada se desliza hacia abajo desde la sección anterior ..UITableView reloadRowsAtIndexPaths error gráfico
me trataron de simplificar el ejemplo tanto como sea posible:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 3;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (section == 0)
return 1;
else if (section == 1)
return 0;
else if (section == 2)
return 3;
return 0;
}
- (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];
}
// Configure the cell...
cell.textLabel.text = @"Text";
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSArray *editedCell = [[NSArray alloc] initWithObjects:indexPath, nil];
//[self.tableView beginUpdates];
[self.tableView reloadRowsAtIndexPaths:editedCell withRowAnimation:UITableViewRowAnimationNone];
//[self.tableView endUpdates];
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
return @"Section";
}
en realidad se puede comentar el último método, pero da una mejor comprensión del problema.
Esa es una gran solución, de todos modos, es el comportamiento extraño de reloadRowsAtIndexPaths un error, o solo lo estaba usando de la manera incorrecta? – Fr4ncis
@ Fr4ncis, no estoy seguro. Para volver a cargar la vista de tabla de celdas puede necesitar agregar/eliminarlos de la jerarquía de vista, reconstruir algunas de sus subvistas u otra cosa - eso depende de cómo se implementan todas esas transformadas internamente – Vladimir
gracias, su solución está limpia y bien estructurada. – jalopezsuarez