Es könnten auch andere Möglichkeiten, dies auch zu tun, aber in meinem Fall habe ich dies getan haben,
Also, was Sie tun müssen, ist, zunächst alle Zellen Last des Tableview lassen, so dass Sie alles Zelle Tableview überprüfen Tableview die Höhe sichtbaren alle Zelle zu erhöhen, ohne Tableview zu Scrollen wie unten geladen,
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
//Update tableView Offset
if indexPath.row() == (tableView.indexPathsForVisibleRows.last! as! NSIndexPath).row {
//End of loading all Visible cells
self.updateTableViewOffsetForTableView(self.tableView, withHeightConstraint: self.heightConstraintTableView)
//If cell's are more than 10 or so that it could not fit on the tableView's visible area then you have to go for other way to check for last cell loaded
}
}
und dann danach müssen Sie die gewünschte Höhe für Ihre Tableview erhalten und diese Höhe auf die Höhe Einschränkung des Tableview gesetzt, aber Sie müssten ScrollView.
func updateTableViewOffsetForTableView(tableView: UITableView, withHeightConstraint heightConstraintToBeUpdated: NSLayoutConstraint) {
var heightRequiredForTable: CGFloat = tableView.contentSize.height
//Set some random height first, it is easy for tableView to shrink its height to high to low.
heightConstraintToBeUpdated.constant = 300
self.view!.layoutIfNeeded()
self.view!.setNeedsUpdateConstraints()
//Update the height constraint with height required for tableView
heightRequiredForTable = tableView.contentSize.height
heightConstraintToBeUpdated.constant = heightRequiredForTable
self.view!.layoutIfNeeded()
self.view!.setNeedsUpdateConstraints()
}
Das ist es, wenn Sie Ihre Scroll die Einschränkungen richtig gesetzt haben, dann wird es auf jeden Fall arbeiten, wie Sie erwarten ...
aktualisieren
ich eine Demo mit dynamischen Zellen erstellt haben sehen, die Ausgabe unten,
Scrollbare Tableview:
Scrollbare Scroll:
Danke, aber ich nicht funktioniert, weil contentSize.height Anzahl von Zeilen zurückgibt * estimatedRowHeight, aber Höhe meiner Reihen der variabel sind. Ideen? – NathanVss
Nein, contentSize gibt geschätzteRowHeight nicht zurück, es gibt die erforderliche Höhe für tableView zurück, um alle Zellen anzuzeigen. Ich habe eine Demo mit dynamischen Höhenzellen erstellt und es funktioniert wie erwartet. Siehe die aktualisierte Antwort. –