Ich erstelle eine dynamische TableView und setze die Zelle mit der Rowheight von 44 im Storyboard. Die Höhe der Tabellenansicht basiert also auf der Anzahl der Zeilen, die meine Datenbank entsprechend den Ergebnissen zurückgibt. Gleichzeitig verbinde ich die bottom constraint der TabelleView mit der Ansicht mit einem IBOutlet. Die Höhe der Tabellenansicht überlagert also nicht die Tastatur und hält etwas Abstand von der Konfiguration. Meine Frage ist, wie kann ich die tableView.frame.size.height mit sizeToFits() in iOS 10 und niedriger aktualisieren?UiTableview aktualisiert Sizetofit nicht in iOS 10, aber arbeitet in iOS 11
Hier sind einige Protokolle klareres Bild haben, tableView and contentView size for iOS 10
Ein anderes Bild, wenn die Tableview des sizetofit() nie von kleineren zu größeren erhöhen. Another logs, es wird komplett verschwunden sein, wenn meine Datenbank 0 zurückgibt, dann für die contentSize wird 0.0 und dann, wenn ich versuche, einige Texte zu entfernen, wird die contentSize zurück zu 44, weil 1 Ergebnis aus der Datenbank und von rechts die SizeToFit() wird passe die Größe basierend auf der contentSize an. Aber in diesem Fall bleiben sie immer noch bei 0.0 und werden nie aktualisiert.
Bild für iOS 11, tableView and contentView size for iOS 11, die Höhe für die Tabellenansicht mit 632 ist korrekt, weil ich einige automatische Layout festgelegt, um zu verhindern stören mit der Tastatur, so dass Benutzer in der Tabelle nach unten scrollen können.
Einige Codes für ein besseres Verständnis,
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// configuration for tableViewCell.
tableView.sizeToFit() // WORKs for iOS 11 but doesn't update for iOS10
if UIDevice.current.userInterfaceIdiom == .pad {
tableView.setNeedsLayout()
tableView.layoutIfNeeded()
cell.backgroundColor = UIColor.darkGray
}
return cell
}