Wenn ich eine Tabellenansicht mit 4 Zeilen einrichte, befinden sich unter den gefüllten Zeilen noch zusätzliche Trennlinien (oder zusätzliche leere Zellen).
Wie würde ich diese Zellen entfernen?
quelle
Wenn ich eine Tabellenansicht mit 4 Zeilen einrichte, befinden sich unter den gefüllten Zeilen noch zusätzliche Trennlinien (oder zusätzliche leere Zellen).
Wie würde ich diese Zellen entfernen?
Ziehen Sie einfach eine UIView auf die Tabelle. Im Storyboard befindet es sich oben unter Ihren benutzerdefinierten Zellen. Sie können es vorziehen, es "Fußzeile" zu nennen.
Hier wird es aus Gründen der Klarheit grün angezeigt. Sie möchten wahrscheinlich eine klare Farbe.
Beachten Sie, dass Sie durch Anpassen der Höhe beeinflussen können, wie der "untere Sprung" der Tabelle nach Ihren Wünschen behandelt wird. (Höhe Null ist normalerweise in Ordnung).
So programmgesteuert:
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.tableFooterView = UIView()
}
- (void)viewDidLoad
{
[super viewDidLoad];
// This will remove extra separators from tableview
self.tableView.tableFooterView = [UIView new];
}
oder wenn Sie es vorziehen,
self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
Zum Table View Controller hinzufügen ...
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
// This will create a "invisible" footer
return CGFLOAT_MIN;
}
und wenn nötig ...
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
return [UIView new];
// If you are not using ARC:
// return [[UIView new] autorelease];
}
tableFooterView
bleibt ein Trennzeichen in der letzten Zelle in der Zeile, da die Tabelle weiterhin Inhalte unterhalb dieser Zelle vorwegnimmt. Wenn Sie den historischen Weg verwenden, wird das letzte Trennzeichen entfernt und sieht insgesamt besser aus.Hier ist eine andere Möglichkeit, dies ohne den gruppierten Tabellenstil zu tun, und eine, die Sie wahrscheinlich nicht erraten würden. Durch Hinzufügen
einer Kopf- undFußzeile zur Tabelle(möglicherweise reicht die eine oder andere aus, wurde nicht überprüft) werdendie Trennzeichen aus den Füll- / Leerzeilen entfernt.Ich bin darauf gestoßen, weil ich oben und unten auf den Tischen etwas Platz haben wollte, um das Risiko zu verringern, Knöpfe anstelle einer Tischzelle mit fleischigen Fingern zu drücken. Hier ist eine Methode, um eine leere Ansicht als Kopf- und Fußzeile einzufügen. Verwenden Sie eine beliebige Höhe, um die zusätzlichen Trennlinien zu entfernen.
Als Antwort auf @Casebash kehrte ich zum Code in meiner App zurück ("AcmeLists" -Listenmanager im iTunes Store ...) und schloss die Methode addHeaderAndFooter kurz, um dies zu überprüfen. Ohne es habe ich die zusätzlichen Zeilentrennzeichen; Mit dem Code habe ich, was Sie in diesem Fenster sehen, Snap: kein Bild mit Tabellenzeilentrennzeichen . Ich bin mir also nicht sicher, warum es bei Ihnen nicht funktioniert hätte. Darüber hinaus ist es für mich sinnvoll, dass für eine benutzerdefinierte Fußzeile in einer Tabellenansicht nicht mehr Zeilentrennzeichen für leere Zeilen darunter gezeichnet werden müssen. Das wäre schrecklich. Als Referenz habe ich mir Tabellen angesehen, in denen mehr Zeilen vorhanden waren, als auf dem Bildschirm angezeigt werden konnten, und dann eine Tabelle mit zwei Zeilen. In beiden Fällen keine Fremdabscheider.
Möglicherweise wurden Ihre benutzerdefinierten Ansichten nicht hinzugefügt. Um dies zu überprüfen, stellen Sie die Hintergrundfarbe auf etwas anderes als
clearColor
z[UIColor redColor]
. Wenn Sie am unteren Rand der Tabelle keine roten Balken sehen, wurde Ihre Fußzeile nicht festgelegt.quelle
Entfernen zusätzlicher Trennlinien für leere Zeilen in UITableView in Swift
quelle
Ich möchte die wkw- Antwort erweitern:
Das einfache Hinzufügen nur einer Fußzeile mit der Höhe 0 reicht aus. (getestet auf sdk 4.2, 4.4.1)
oder noch einfacher - wo Sie Ihre Tabellenansicht einrichten, fügen Sie diese Zeile hinzu:
oder noch einfacher - um Trennzeichen einfach zu entfernen:
Nochmals vielen Dank an wkw :)
quelle
Für iOS 7+ mit Storyboards
Ziehen
UIView
Sie einfach ein in IhreUITableView
als Fußzeile. Stellen Sie die Höhe der Fußzeilenansicht auf 0 ein.quelle
Versuche dies. Es hat bei mir funktioniert:
quelle
Für Swift:
quelle
Wenn Sie Swift verwenden, fügen Sie viewDidLoad des Controllers, der die Tabellenansicht verwaltet , den folgenden Code hinzu :
quelle
Sie können am Ende einfach eine leere Fußzeile hinzufügen, dann werden die leeren Zellen ausgeblendet, aber es sieht auch ziemlich hässlich aus:
Es gibt einen besseren Ansatz: Fügen Sie am Ende der Tabellenansicht eine 1-Punkt-Linie hinzu, da die Fußzeile und die leeren Zellen ebenfalls nicht mehr angezeigt werden.
quelle
Fügen Sie einfach diesen Code hinzu ( Swift ). .
quelle
Weiterentwicklung der Lösung von J. Costa: Sie können eine globale Änderung an der Tabelle vornehmen, indem Sie diese Codezeile einfügen:
innerhalb der ersten möglichen Methode (normalerweise in
AppDelegate
, in:application:didFinishLaunchingWithOptions:
Methode).quelle
Ich weiß, dass diese Frage als Antwort akzeptiert wurde, aber ich habe hier verschiedene Möglichkeiten angegeben, wie die zusätzliche Trennlinie von ausgeblendet werden kann
UITableView
.Sie können die
tableView
Standardtrennlinie ausblenden und Ihre benutzerdefinierte Linie oben in jede Zelle einfügen.Aktualisieren:
Der einfachste Weg, ein benutzerdefiniertes Trennzeichen hinzuzufügen, besteht darin, ein einfaches
UIView
Trennzeichen mit einer Höhe von 1 Pixel hinzuzufügen :ODER
ODER
ODER Der beste und einfachste Weg, den ich je mag, ist
Probieren Sie eines aus.
quelle
Möglicherweise finden Sie viele Antworten auf diese Frage. Die meisten von ihnen befassen sich mit der Manipulation mit
UITableView
demtableFooterView
Attribut 'und dies ist der richtige Weg, um leere Zeilen auszublenden. Der Einfachheit halber habe ich eine einfache Erweiterung erstellt, mit der leere Zeilen in Interface Builder ein- und ausgeschaltet werden können. Sie können es aus dieser Hauptdatei auschecken . Ich hoffe, es könnte ein wenig Zeit sparen.Verwendungszweck:
quelle
uitableview zusätzliche Trennlinie zusätzliche Trennlinien ausblenden in Swift 3.0 ausblenden
quelle
Wenn Sie nach der letzten Zelle kein Trennzeichen mehr benötigen, benötigen Sie für Ihre Fußzeile eine Höhe nahe Null, jedoch nicht Null.
In Ihrem
UITableViewDelegate
:quelle
Swift funktioniert hervorragend mit:
quelle
Fügen Sie Ihrer tableViewCell einfach eine Ansicht mit der gewünschten Trennfarbe als Hintergrundfarbe, 100% Breite, 1 Pixel Höhe an der Position x0 y-1 hinzu. Stellen Sie sicher, dass die tableViewCell keine Unteransichten schneidet, sondern die tableView.
Sie erhalten also ein absolut einfaches und funktionierendes Trennzeichen nur zwischen vorhandenen Zellen ohne Hack pro Code oder IB.
Hinweis: Bei einem vertikalen Top-Bounce wird das 1. Trennzeichen angezeigt. Dies sollte jedoch kein Problem darstellen, da dies das Standardverhalten von iOS ist.
quelle
Ich habe eine Tabellenansicht verwendet, um eine feste Anzahl von Zeilen mit fester Höhe anzuzeigen. Daher habe ich die Größe einfach geändert und sie nicht scrollbar gemacht.
quelle
Um zusätzliche Trennzeilen programmgesteuert am unteren Rand von UItableview zu entfernen, schreiben Sie einfach die folgenden zwei Codezeilen auf, um zusätzliche Trennzeichen zu entfernen.
Dieser Trick funktioniert die ganze Zeit für mich, versuchen Sie es selbst.
quelle
Ich hatte etwas Glück bei der Implementierung eines einzelnen Teils der akzeptierten Antwort (iOS 9+, Swift 2.2). Ich hatte versucht zu implementieren:
Es gab jedoch keine Auswirkungen auf meine
tableView
- ich glaube, es könnte etwas mit der Tatsache zu tun haben, dass ich verwendet habeUITableViewController
.Stattdessen musste ich nur die
viewForFooterInSection
Methode überschreiben (ich habe die nichttableFooterView
anderswo festgelegt):Dies funktionierte gut für einen
tableView
einzelnen Abschnitt (wenn Sie mehrere Abschnitte haben, müssen Sie den letzten angeben).quelle
Wenn Sie nur einen Abschnitt haben, können Sie am schnellsten und einfachsten den Tabellenansichtsstil von "Einfach" auf "Gruppiert" einstellen. (siehe Bild)
Wenn Sie mehr Abschnitte haben, müssen Sie möglicherweise die Headerhöhe auf Null setzen (abhängig vom Geschmack Ihres / Ihres Kunden / Ihres Projektmanagers).
Wenn Sie mehr Abschnitte haben und sich nicht mit den Überschriften herumschlagen möchten (auch wenn es im einfachsten Fall nur eine Zeile ist), müssen Sie eine UIView als Fußzeile festlegen, wie in den vorherigen Antworten erläutert.
quelle
Swift 4.0-Erweiterung
Nur eine kleine Erweiterung für das Storyboard:
quelle
Schnell und einfach Swift 4 Way.
Wenn Sie statische Zellen haben. Sie können das Trennzeichen auch im Inspektorfenster deaktivieren. (Dies ist nicht wünschenswert, wenn Sie das Trennzeichen benötigen. Verwenden Sie in diesem Fall die oben gezeigte Methode.)
quelle
super.viewDidLoad()
) und ist in der Wiki-Antwort oben enthalten. Das Entfernen aller Trennzeichen ist nicht das, worum es bei dieser Frage geht. Setzen Sie also Ihre letzte Bearbeitung besser zurück und / oder löschen Sie Ihre Antwort vollständig.Wenn Sie unerwünschten Speicherplatz in UITableview entfernen möchten, können Sie die folgenden zwei Methoden verwenden
quelle
Ich habe diese kleine Tabellenansicht-Erweiterung hinzugefügt, die überall hilft
quelle
Versuchen Sie es damit
für Ziel C.
für Swift
quelle
Versuche dies
quelle
UIKit
erstellt keine leere Zelle, wenn dietableView
eine hattableFooterView
. So können wir einen Trick machen und einUIView
Objekt mit einer Höhe von Null als Fußzeile des zuweisentableView
.quelle
Wenn Sie eine
searchbar
in Ihrer habenview
(um beispielsweise die Anzahl der Ergebnisse zu begrenzen), müssen Sie inshouldReloadTableForSearchString
und auch Folgendes hinzufügenshouldReloadTableForSearchScope:
quelle
In Swift (ich verwende 4.0) können Sie dies erreichen, indem Sie eine benutzerdefinierte
UITableViewCell
Klasse undoverriding
diesetSelected
Methode erstellen . Dann dasseparator insets
alles auf 0 . (meine Hauptklasse mit der Tabellenansicht hat einen klaren Hintergrund) Farbe.quelle