2012-04-19 9 views
19

Estoy intentando expandir una UITableViewCell para revelar más contenido. Hasta ahora he bajado la animación, pero mi problema es que aparece el nuevo contenido antes de que se complete la animación. Aquí está mi código:Expansión de UITableViewCell

ps la etiqueta de descripción y el botón de lectura comienzan como ocultos cuando se configura la celda.

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    self.selectedRow = indexPath; 
    SDJCell *cell = (SDJCell *)[tableView cellForRowAtIndexPath:indexPath]; 
    [tableView beginUpdates]; 
    [tableView endUpdates]; 
    cell.descriptionLabel.hidden = NO; 
    cell.readButton.hidden = NO; 
} 

-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath { 
    SDJCell *cell = (SDJCell *)[tableView cellForRowAtIndexPath:indexPath]; 
    [tableView beginUpdates]; 
    [tableView endUpdates]; 
    cell.descriptionLabel.hidden = YES; 
    cell.readButton.hidden = YES; 
} 

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    if(selectedRow && indexPath.row == selectedRow.row) { 
    return 100; 
    } 
    return 44; 
} 

¿Alguna idea de cómo puedo revelar este contenido adicional después de que la célula termine de expandirse?

Gracias!

Respuesta

26

Tuve exactamente el mismo problema. La solución es establecer la máscara de aumento automático de la celda, de modo que cambie el tamaño junto con su supervista.

cell.autoresizingMask = UIViewAutoresizingFlexibleHeight; 
cell.clipsToBounds = YES; 

también se puede hacer esto en sotoryboard, ambas banderas se pueden establecer bajo inspector de identidad

+0

que eres el hombre gracias –

+1

se hizo por casualidad encuentran una manera de reducir el tamaño de la celda de nuevo en un segundo toque? Estoy tratando de encontrar una manera de deshacer el efecto –

+1

Sí, simplemente ajuste la altura a la altura mínima y debería hacerlo. – aryaxt