2015-07-15 7 views
6

Ho uno UIViewController con uno UITableView all'interno di uno UINavigationController.
Quando mi nascondere la barra di navigazione conImpedisci layout UITableViewCell durante l'animazione

[self.navigationController setNavigationBarHidden:YES animated:YES]; 

la visualizzazione della tabella viene ridimensionato e una nuova cella viene visualizzato nella parte inferiore. Questo layout di celle è sotto le anteprime all'interno dell'animazione che nasconde la barra di navigazione.

Cell Animation

Esiste un modo per escludere il layout della cella dal animazione?

risposta

6

È possibile impedire la cellula da animare implementando il metodo UITableViewDelegate tableView:willDisplayCell:forRowAtIndexPath: come tale:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    [UIView performWithoutAnimation:^{ 
     [cell layoutIfNeeded]; 
    }]; 
} 
+0

Grazie! Ha funzionato perfettamente per tutto tranne l'indicatore di divulgazione. Usando 'performWithoutAnimation:' around 'cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;' risolto anche questo. – Jochen