webentwicklung-frage-antwort-db.com.de

Wie entferne ich leere Zellen in UITableView?

ich versuche, ein einfaches UITableView mit einigen Daten anzuzeigen. Ich möchte die statische Höhe von UITableView so einstellen, dass 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];
}
341
z22

Legen Sie eine Fußzeilenansicht mit der Höhe Null fest (möglicherweise in Ihrer viewDidLoad -Methode), wie folgt:

Swift:

tableView.tableFooterView = UIView()

Ziel-C:

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

Da die Tabelle der Ansicht ist, dass eine Fußzeile angezeigt werden muss, werden nur die Zellen angezeigt, nach denen Sie ausdrücklich gefragt haben.

Interface Builder-Tipp:

Wenn Sie ein xib/Storyboard verwenden, können Sie einfach eine UIView (mit der Höhe 0pt) auf den unteren Rand von UITableView ziehen.

853
Andy

Swift 3-Syntax:

tableView.tableFooterView = UIView(frame: .zero)

schnelle Syntax: <2.

tableView.tableFooterView = UIView(frame: CGRect.zeroRect)

Swift 2.0-Syntax:

tableView.tableFooterView = UIView(frame: CGRect.zero)
101
Dustin Williams

Wählen Sie im Storyboard den UITableView aus und ändern Sie den Eigenschaftenstil von Plain in Grouped.

62

Implementiert mit Swift auf Xcode 6.1

self.tableView.tableFooterView = UIView(frame: CGRectZero)
self.tableView.tableFooterView?.hidden = true

Die zweite Codezeile hat keine Auswirkungen auf die Präsentation. Sie können sie verwenden, um zu überprüfen, ob sie ausgeblendet ist oder nicht.

Antwort von diesem Link Leere Zellen in UITableView Swift konnten nicht ausgeblendet werden

16
Leonardo Jorge

Ich kann noch keinen Kommentar hinzufügen, füge diesen also als Antwort hinzu.

@ Andys Antwort ist gut und die gleichen Ergebnisse können mit der folgenden Codezeile erzielt werden:

tableView.tableFooterView = [UIView new];

Die Methode 'new' gehört zur Klasse NSObject und ruft die Methoden alloc und init für UIView auf.

11
Sahil

Ich habe den Code ausprobiert:

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

Im Abschnitt viewDidLoad und xcode6 wurde eine Warnung angezeigt. Ich habe ein "Selbst" gesetzt. davor und jetzt funktioniert es gut. Der von mir verwendete Arbeitscode lautet also:

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

oder Sie können die tableView-Methode aufrufen, um die Fußzeilenhöhe auf 1 Punkt festzulegen. Sie fügt dann eine letzte Zeile hinzu. Sie können sie jedoch auch ausblenden, indem Sie die Hintergrundfarbe für die Fußzeile festlegen.

code:

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

sieht aus wie letzte Zeile

3
KostiaZzz
override func viewWillAppear(animated: Bool) {
    self.tableView.tableFooterView = UIView(frame: CGRect.zeroRect)

/// OR 

    self.tableView.tableFooterView = UIView()
}
2
A.G

Mit UITableViewController

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

  1. Schreiben Sie das unten angegebene Code-Snippet in die ViewDidLoad -Methode.

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

  2. Füge folgende Methode in das TableViewClass.m Datei.

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

Das ist es. Sie können Ihr Projekt erstellen und ausführen.

1
Manan Devani

in der folgenden 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 in UIViewController.

0
Bharath Raj