Ich möchte, dass meine UITableView-Fußzeile nicht mehr über meinen Inhalten schwebt, wie dies die Standardaktivität ist. Ich möchte, dass meine Fußzeile ... nun ... eine Fußzeile ist. Immer die letzte Ansicht, die am Ende meiner Tabellenansicht angezeigt wird. :) :)
Das Gleiche gilt auch für den Header.
Gibt es eine einfache Möglichkeit, das Schweben über der Tabellenansicht beim Scrollen zu deaktivieren?
Vielen Dank an alle, ich konnte anderswo keine Antwort finden.
quelle
viewForFooterInSection
. Andernfalls müssen Sie die Fußzeile unten halten und mit der benötigten Tabelle scrollenself.tableView.tableFooterView = footerView
.- (id)init { self = [self initWithStyle:UITableViewStyleGrouped]; //Default is UITableViewStylePlain return self; }
quelle
Sie haben zwei Arten von Fußzeilen: eine ist die Abschnittsfußzeile und die andere ist die Fußzeile Tabellenansicht .
Die Fußzeile des Abschnitts wird unter jedem Abschnitt angezeigt . Auf der anderen Seite wird die Fußzeile der Tabellenansicht nur einmal am Ende der Tabellenansicht angezeigt .
Es gibt keine 1-Klick-Möglichkeit, das Schweben der Abschnittsfußzeile zu deaktivieren.
Wenn Sie eine "Fußzeile" möchten, die immer als letzte Zelle ihres Abschnitts angezeigt wird und am unteren Rand der Tabellenansicht fixiert wird, müssen Sie Ihrem Abschnitt eine zusätzliche Zelle hinzufügen und sie immer als die letzte Ihres Abschnitts behandeln.
Wenn Sie nur einen Abschnitt in Ihrer Tabellenansicht haben, können Sie die Fußzeile der Tabellenansicht als Fußzeile verwenden.
quelle
self.YOUR_TABLE_VIEW.tableFooterView = YOUR_FOOTER_VIEW;
quelle
Wenn Sie Ihre Zellen in Abschnitte unterteilt haben und die Funktion verwenden:
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView?
Um Ihre Fußzeile festzulegen, können Sie in IB auch den UITableView-Stil auf Gruppiert setzen. Dies ist eine weitere mögliche Lösung!
quelle
Wenn ich die Frage richtig gestellt habe, möchten Sie im Grunde die Fußzeile / Kopfzeile korrigieren und alles andere scrollen? In diesem Fall könnten Sie nur die Kopf- und Fußzeile als separate Ansichten von der Tabellenansicht haben, die in der Ansichtshierarchie über der Tabellenansicht liegen, sodass sie den Inhalt der Tabellenansicht abdecken.
Wenn Sie möchten, dass sie mit der Tabellenansicht springen (wenn Sie über oder unter den Inhalt scrollen), müssen Sie die Methode der Tabellenansicht verfolgen (die Tabellenansicht ist eine Unterklasse der Bildlaufansicht, damit sie funktioniert)
- (void)scrollViewDidScroll:
und die neue Position entweder in der Fußzeile oder in der Header drin.Ich hoffe, Sie erhalten meine Antwort. Ich habe etwas Ähnliches getan und es hat funktioniert (ich wollte, dass das "Release to Update" -Ding oben auf der Tabellenansicht angezeigt wird.)
quelle
Ich hatte ein ähnliches Problem. Ich habe nur eine Fußzeile verwendet, um die Anzahl der Zellen in der Tabelle unten anzugeben. Aber es wurde nicht wie erwartet mit den Tisch-Cels gescrollt (es war jederzeit oben auf dem Tisch sichtbar, bis ich den Boden erreichte, an dem es abprallt).
Meine Lösung, um dies zu überwinden, bestand darin, zwei Abschnitte zu erstellen, von denen einer die Tabellenzellen und ein weiterer leere ABER mit einem Header enthält. Dieser Header zeigt den Zähler und verhält sich wie gewünscht (um immer am Ende der Tabelle zu bleiben, anstatt die Zellen zu überlagern).
Die empfohlene Lösung, eine Dummy-Zelle am unteren Rand hinzuzufügen, war in meinem Fall nicht sinnvoll, da sie mit dem verdrahteten Rand der Tabelle begrenzt wäre, und das wollte ich nicht.
Hoffe das hilft
quelle
#pragma mark - Es gibt zwei Möglichkeiten, dies zu tun -
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{ return HEIGHT; } -(UIView*)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{ return FOOTERVIEW }
theTableView.tableFooterView = YOURFOOTERVIEW // Do not set this delegate // or you would get a extra blank at the bottom of the table // -(CGFloat)tableView:(UITableView *)tableView // heightForFooterInSection:(NSInteger)section{ // return HEIGHT; // }
quelle
Überprüfen Sie meine Antwort hier, https://stackoverflow.com/a/41816730/1553351 . Der Code macht genau das, was Sie in Ihrer Frage beschrieben haben
quelle