Ausblenden der UITableView-Fußzeile

8

Ich kann meine UITableView-Fußzeile nicht ausblenden (d. h. ihre Höhe auf 0 setzen und den Übergang animieren).

Ich habe versucht, tableView.tableViewFooter.height = 0 (und tableView.tableViewFooter = nil ) zwischen [tableView beginUpdates] und [tableView endUpdates] zu packen, aber es funktioniert nicht.

Durch die Implementierung der folgenden Methode wird eine andere Fußzeile erstellt.

%Vor%

Gibt es einen Unterschied zwischen einer Tabellenansichtsfußzeile und einer Abschnittsfußzeile? Ich habe meinen erstellt, indem ich in meinem Storyboard unter meiner Tabellenansicht eine Schaltfläche löschte.

Irgendwelche Ideen, dies einfach zu tun?

    
user3250560 05.03.2014, 19:25
quelle

6 Antworten

9

Ok, hier habe ich dieses Problem gelöst.

%Vor%

Ich habe [[UIView alloc] initWithFrame:CGRectZero anstelle von nil verwendet, um zu verhindern, dass in der Tabellenansicht unerwünschte leere Zellen angezeigt werden.

Ich brauchte keinen Animationsblock, aber andere Leute könnten das tun.

%Vor%

Außerdem musste ich einen starken Bezug zu meinem tableFooterButton IBOutlet behalten. Das war der Grund, warum mein erster Versuch, das Problem zu lösen, fehlschlug. Ich bin mir nicht sicher, ob eine starke Bezugnahme auf ein IBOutlet eine gute Übung ist. Fühlen Sie sich frei, einen Kommentar dazu zu hinterlassen.

    
user3250560 10.03.2014, 13:52
quelle
6

mit dem folgenden Code:

%Vor%     
machine 19.05.2015 16:25
quelle
2

Dies sollte den Trick machen. Es gibt andere Alternativen wie diese Antwort hier .

%Vor%     
ridacl 05.03.2014 19:34
quelle
1

verwende folgende Methoden:

%Vor%     
Divya Bhalodiya 06.03.2014 15:05
quelle
0

Am Ende ist hier die einfachste Lösung, die ich Ihnen geben kann. Wie du sehen kannst, lege ich einfach die .m (zur Vereinfachung).

Es gibt einen Unterschied zwischen Tabellenfuß und Abschnittsfuß. Was Sie suchen, ist der Abschnitt Fußzeile.

Ich habe auch einen Animationsblock zum Hinzufügen und Entfernen hinzugefügt.

%Vor%     
P. Sami 05.03.2014 19:34
quelle
0

Mein Problem war, dass die freie Zeile die Fußzeile war, die ich nur als 1 Pixel hoch und nicht als 0 definieren konnte (da ich keine Fußzeile haben möchte). Der einzige Weg, wie ich das beheben konnte, war, eine Sicht in viewForFooterInSection bereitzustellen und die Hintergrundfarbe auf die gleiche wie die Kopfzeile einzustellen, so dass Sie visuell nicht bemerken, und wenn ich neue Zeilen animiere, werden sie nicht oben angezeigt der Kopfzeile, wo die klare Linie (Fußzeile) war.

%Vor%     
ziggyzoggy 16.03.2016 13:35
quelle