Ich versuche, eine App ähnlich wie iOS native Reminders App zu bauen. Wo gibt es eine Liste von Artikeln mit Kopf- und Fußzeile? Jede Zelle enthält eine UITextView
, die die Zellenhöhe dynamisch ändert, wenn der Benutzer tippt. Fußzeilenansicht enthält die gleiche Zellenansicht, außer dass ich möchte, dass es eine Fußzeile ist, so dass es in der Ansicht von unten bleiben würde. Ich habe Zelle auf dynamische Höhe eingestellt.UITableView reloadSections löst nicht viewForFooterInSection aus?
checklistTable.rowHeight = UITableViewAutomaticDimension
checklistTable.estimatedRowHeight = 60
checklistTable.sectionFooterHeight = UITableViewAutomaticDimension
checklistTable.estimatedSectionFooterHeight = 60
hier ist die Logik für die Höhen Aktualisierungs-Zelle während des Tippens, das perfekt für regelmäßige Zellen funktioniert, aber für Fußzeile Ansicht funktioniert nicht. Ich legte einen Haltepunkt in viewForFooterInSection, es wurde nie nach dem ersten Laden aufgerufen.
func textViewDidChange(_ textView: UITextView) {
let startHeight = textView.frame.size.height
let calcHeight = textView.sizeThatFits(textView.frame.size).height
if startHeight != calcHeight {
UIView.setAnimationsEnabled(false)
tableView?.beginUpdates()
if cellType == .footer {
tableView?.reloadSections(IndexSet(integer: 0), with: .automatic)
}
tableView?.endUpdates()
UIView.setAnimationsEnabled(true)
}
}
Kann mir jemand in die richtige Richtung zeigen? Dank
Hat viewForFooterInSection jemals zunächst aufgerufen? –
Die API-Dokumentation sagt nur, dass diese Methode die Zellen aktualisiert, nicht die Kopf- und Fußzeilen. – picciano
@nirav Ja, viewForFooterInSection ruft Aufruf initialisieren. und irgendwann beim Scrollen –