Wenn Sie ein UITableView
mit dem UITableViewStyleGrouped
-Stil erstellen, fügt es ziemlich viel Platz (oder "cushion") zwischen den eigentlichen Tableview-Zellen und den Rahmen des Tabellenrahmens ein. Dieser Raum befindet sich oberhalb, unterhalb, links und rechts von den Tableview-Zellen.
Sie können den Abstand zwischen Tableviewcells selbst ändern durch:
%Vor%Aber selbst wenn Sie das tun, ist immer noch dieser nervige Platz zwischen dem oberen Rand des Rahmens und der ersten Tabellenansichtszelle. Darüber hinaus befindet sich noch eine Menge Platz zwischen der linken Seite des Rahmens und der Tabellenansichtszelle sowie der rechten Seite des Rahmens und der Tabellenansichtszelle.
- = - = - = - = - = - = -
Gibt es im Prinzip eine Möglichkeit, diesen Raum zu manipulieren (Größe zu verändern)? Meine einzige Lösung ist bisher, die Größe des Rahmens größer als der Bildschirm zu machen, um das Programm so zu fälschen, dass es außerhalb des Bildschirms einen "leeren Raum" hat, wodurch es entfernt wird. Dies ist jedoch offensichtlich nicht optimal und ein klarer Hack.
Irgendwelche Gedanken? Vielen Dank im Voraus!
Diese Antwort kommt ziemlich spät, aber ich hoffe, es hilft jemandem.
Der Platz ist da wegen der Eigenschaft UITableView
tableHeaderView
. Wenn die tableHeaderView
-Eigenschaft nil
ist, verwendet Apple standardmäßig eine Ansicht. Um dies zu erreichen, erstellen Sie eine leere Ansicht mit einer Höhe größer als 0
. Wenn Sie dies festlegen, wird die Standardansicht überschrieben, wodurch der unerwünschte Speicherplatz entfernt wird.
Dies kann in einem Storyboard erfolgen, indem Sie eine Ansicht an den Anfang eines tableView
ziehen und dann die Höhe der Ansicht auf einen Wert von 1
oder größer einstellen.
Oder es kann programmgesteuert mit dem folgenden Code durchgeführt werden:
Ziel-C:
%Vor%Schnell:
%Vor%Wie andere bemerkt haben, können Sie die gleiche Lösung für Fußzeilen verwenden.
Siehe Dokumentation für weitere Details zur Eigenschaft tableHeaderView
.
Dank @liushuaikobe für die Überprüfung mit der am wenigsten positiven normalen Zahl funktioniert.
Wenn der Stil Ihrer TableView UITableViewStyleGrouped
ist, dann müssen Sie auf den Delegaten der Höhe von SectionHeader oder SectionFooter achten, weil dies genau in diesem Fall implementiert werden muss.
Der Rückgabewert sollte nicht 0 sein, selbst wenn SectionHeader oder die Höhe von SectionFooter 0 ist, muss es ein sehr kleiner Wert sein; probiere CGFLOAT_MIN
.
Für mein Beispiel:
%Vor%}
%Vor%Stellen Sie sicher, dass Sie diese beiden Methoden implementiert haben und der Wert stimmt, und der obere Rand wird fixiert.
Sehr gute Antwort von Leszek. Aber da FLT_MIN
deprecated
ist, ist der folgende Code besser. Und verwende es in der viewDidLoad()
-Methode.
Schnell
%Vor%Tags und Links objective-c uitableview