2011-08-22 11 views

risposta

16

Stai cercando il reloadRowsAtIndexPaths: metodo su UITableView. Attiverà il ricalcolo dell'altezza (e successivo ridisegno) di celle specifiche. Può persino animare la regolazione in modo da poter eseguire l'aggiornamento in tempo reale mentre l'utente sta scorrendo, in modo tale che la vista tabella non "agiti" o "passo di scatto" mentre le altezze vengono ricalcolate. L'ho appena implementato con successo per fare ciò che hai descritto.

Fonte: Update UITableViewCell without reload

+4

Ricaricare la tabella può respingere la tastiera se l'altezza della fila i cambiamenti. – aksommerville

+0

Ovviamente. Questo è vero ogni volta che ridisegni un input in UIKit ... –

+4

La domanda richiede in particolare un modo per farlo senza scartare la tastiera. reloadRowsAtIndexPaths chiude la tastiera –

0

È possibile chiamare beginUpdates && endUpdates, questi fa sì che l'altezza delle celle tavolo da recaluclated, senza ricaricare l'intera cella

  UIView.setAnimationsEnabled(false) 

      self.tableView.beginUpdates() 
      self.tableView.endUpdates() 
      // Re-enable animations 
      UIView.setAnimationsEnabled(true) 
Problemi correlati