2016-04-12 21 views
14

Ho una vista tabella con cella prototipo, nella cella che ho imageview e del testo sotto. L'etichetta di testo è una laina nella cella prototipo, ma a volte è più di una riga, sto caricando i dati nella vista tabella dopo la chiamata al server. L'etichetta nello storyboard Le righe sono impostate su 0 e Line Break su A capo automatico. Ho anche provato http://candycode.io/automatically-resizing-uitableviewcells-with-dynamic-text-height-using-auto-layout/Altezza della cella di tabella dinamica rapida

ma nessun effetto. Se utilizzo Using Auto Layout in UITableView for dynamic cell layouts & variable row heights , tutto funziona perché il testo dell'etichetta è predefinito, ma sto caricando i dati dal server e ricarico il TableView dopo la chiamata API, quindi l'etichetta è solo una riga.

+0

La vostra etichetta ha vincolo basso verso tableViewCell? –

+0

sì, io uso i vincoli suggeriti, dovrei rimuoverlo? – SpyZip

+1

vedere http://stackoverflow.com/questions/36437861/what-constraints-would-prevent-my-uiviews-from-stacking-on-top-of-each-other/36438009#36438009 – Scriptable

risposta

22

È necessario utilizzare UITableViewAutomaticDimension fornisce una soluzione per la visualizzazione di contenuto dinamico.

Usa sottostante Codice in viewDidLoad:

tableView.estimatedRowHeight = YourTableViewHeight 
tableView.rowHeight = UITableViewAutomaticDimension 

Read more from here

Speranza che aiuta. :)

+1

Questo funziona con l'autolayout! Aggiungo anche che "tableView.estimatedRowHeight = xxx" è necessario per farlo funzionare, non è opzionale. – smukamuka

12

fare vincolo altezza assicurarsi UILabel non sia costante, se costante si deve impostare Relazione maggiore o uguale a dall'attributo ispettore

assicurarsi altezza di righe UITableViewestimate impostato secondo la vostra.

self.TableName.estimatedRowHeight = 85 

and write in UITableViewcell class 


Cell.lbl_name.sizeToFit() 


Cell.lbl_name.numberOfLines = 0 

assicurarsi che il proprio metodo UITableViewDelegate

func tableView(tableView: UITableView, 
    heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat 
{ 

return UITableViewAutomaticDimension 
}