2012-04-19 19 views
19

Sto cercando di espandere UITableViewCell per rivelare più contenuti. Finora ho ottenuto l'animazione, ma il mio problema è che il nuovo contenuto appare prima che l'animazione sia completata. Ecco il mio codice:Espansione UITableViewCell

ps l'etichetta descrizione e il pulsante di lettura iniziano entrambi come nascosti quando la cella è configurata.

-(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; 
} 

Tutte le idee per come posso rivelare questo contenuto extra dopo la cella è fatto in espansione ??

Grazie !!

risposta

26

Ho avuto lo stesso identico problema. La soluzione è quella di impostare la maschera di autoresizzazione della cella, in modo che si ridimensiona con la sua superview.

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

si potrebbe anche fare questo in sotoryboard, entrambi i flag possono essere impostati con l'identità ispettore

+0

Sei l'uomo grazie –

+1

hai fatto per caso trovare un modo per ridurre la cella di nuovo in un secondo tocco? Sto cercando di capire un modo per annullare l'effetto –

+1

Sì, basta impostare l'altezza indietro all'altezza minima e dovrebbe farlo. – aryaxt