Ho un viewController, con un tableview all'interno di una scrollview.Regola l'altezza di scrollview in base all'altezza della sua tableview child in SWIFT
Ho bisogno di aggiornare a livello di programmazione l'altezza della tableview, e quindi, l'altezza della scrollview (l'altezza della scrollview dipende dall'altezza della tabella).
-my View Controller
-View
-ScrollView
-Container View
-TableView
Così ho scritto questo codice nel viewDidAppear della mia viewController:
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
var frame:CGRect = self.tableView.frame
frame.size.height = tableView.contentSize.height
self.tableView.frame = frame
scrollView.contentSize=CGSizeMake(scrollView.frame.size.width, tableView.frame.origin.y + tableView.frame.height)
}
Se controllo nella console, viewDidAppear è chiamato prima di tutti i cellForRowAtIndexPath. In questo caso, tutto funziona come voglio io.
Nel mio viewController, ho un pulsante che apre un modalViewController. In questo modalViewController, aggiungo un nuovo dato nel mio tableview (quindi, una nuova cella).
Quando chiudo il mio modalViewController con dismissViewControllerAnimated, viewDidAppear viene chiamato ma DOPO tutto il cellForRowAtIndexPath. My viewController non è visualizzato correttamente, la tableview è ritagliata, non riesco a scorrere fino alla fine della mia tabellaView. Il mio codice non funziona.
Sto lavorando con Swift e layout automatico.