371 Stimmen

Wie entfernt man leere Zellen in UITableView?

Ich versuche, eine einfache UITableView mit einigen Daten. Ich möchte die statische Höhe des UITableView damit am Ende der Tabelle keine leeren Zellen angezeigt werden. Wie mache ich das?

Code:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    NSLog(@"%d", [arr count]);
    return [arr count];
}

8voto

Filozof Abi Punkte 81

Ich habe den Code ausprobiert:

tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

In der viewDidLoad Abschnitt und xcode6 zeigte eine Warnung an. Ich habe ein "self." vorangestellt und jetzt funktioniert es gut:

self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

3voto

KostiaZzz Punkte 172

Oder Sie können die tableView-Methode aufrufen, um die Höhe der Fußzeile auf 1 Punkt einzustellen, und es wird eine letzte Zeile hinzugefügt, aber Sie können sie auch ausblenden, indem Sie die Hintergrundfarbe der Fußzeile einstellen.

Code:

func tableView(tableView: UITableView,heightForFooterInSection section: Int) -> CGFloat {
     return 1
}

sieht aus wie letzte Zeile

2voto

Alvin George Punkte 13610
override func viewWillAppear(animated: Bool) {
    self.tableView.tableFooterView = UIView(frame: CGRect.zeroRect)

/// OR 

    self.tableView.tableFooterView = UIView()
}

1voto

Manan Devani Punkte 434

Verwendung von UITableViewController

Die akzeptierte Lösung verändert die Höhe der TableViewCell . Führen Sie die folgenden Schritte aus, um dies zu beheben:

  1. Schreiben Sie den unten stehenden Codeausschnitt in ViewDidLoad Methode.

    tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

  2. Fügen Sie folgende Methode in der TableViewClass.m Datei.

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
    {
        return (cell height set on storyboard); 
    }

Das war's. Sie können Ihr Projekt erstellen und ausführen.

0voto

Bharath Raj Punkte 56

In der unten beschriebenen Methode:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (([array count]*65) > [UIScreen mainScreen].bounds.size.height - 66)
    {
        Table.frame = CGRectMake(0, 66, self.view.frame.size.width, [array count]*65)); 
    }
    else
    {
        Table.frame = CGRectMake(0, 66, self.view.frame.size.width, [UIScreen mainScreen].bounds.size.height - 66);
    }
    return [array count];
}

hier ist 65 die Höhe der Zelle und 66 die Höhe der Navigationsleiste im UIViewController.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X