2010-07-12 3 views
12

In meiner Anwendung hat die Tabellenansicht verschiedene Arten von benutzerdefinierten Zellen mit unterschiedlichen Höhen. Ich möchte eine Sicht unterhalb dieser Tabelle anzeigen, für die ich die Tabelle contentView Höhe berechnen muss, wie kann ich es tun?Berechnen Sie die contentSize.height der Tabelle mit benutzerdefinierten Zellen verschiedener Typen iphone

Früher habe ich es so gemacht: (noOfRows * cell_height), aber das war für statische Höhen.

Vielen Dank im Voraus.

Antwort

0

Die einfachste Sache, die ich denken kann, wäre Ihrer Ansicht nach setzen, wie die Tabelle des tableFooterView

+0

Thanx chrispix .. aber footerView hat helpme meine Anforderungen nicht erreichen. Im Grunde versuche ich pullToReload view unter meinem Tableview zu sehen, welches unterhalb von tableview platziert werden sollte, so dass beim Beenden von content-offset von tableview contentview diese nicht sichtbar sein sollte, während die footerView am ending offset von tableview sichtbar ist Inhaltsansicht – neha

0

Ich denke, was Sie suchen self.view.bounds.size.height ist.

Auschecken Oliver Drobnik's detailed post on creating a pull-to-reload table view. In seinem Fall ist es einfacher, weil die Ansicht oben ist, also sucht er nach einem negativen contentOffset.

Wenn Sie es an der Unterseite möchten, können Sie überprüfen, für scrollView.contentOffset.y > (self.view.bounds.size.height + pullToReloadViewHeight)

-3

Wenn Sie Ihre eigenen Zellen implementiert haben, dann haben Sie bereits wahrscheinlich diese Funktion in Ihrem Tisch Delegat implementiert:

- (CGFloat)tableView:(UITableView *)tableView 
      heightForRowAtIndexPath:(NSIndexPath *)indexPath 

Iterieren Sie einfach Ihre Zeilen, rufen Sie diese Funktion für jede einzelne auf und addieren Sie das Ergebnis.

+0

Enthält keine Headergröße – malhal

19

UITableView ist eine Unterklasse von UIScrollView, daher können Sie die Instanz-Methode Content auf Ihrem Tableview verwenden:

yourtableView.contentSize.height 

Sie die Höhe Ihres Tableview Inhalt

+7

Dies gibt 0 zurück, wenn Sie benutzerdefinierte Zellen mit benutzerdefinierten Höhen verwenden. EDIT: Dies gibt den richtigen Wert zurück, wenn Sie 'TableView.ReloadData()' zuerst aufrufen. :) –

+1

Dies ist nicht ausreichend, wenn die Zellen dynamische Höhe haben, da sie den gleichen Typ von Zelle sind, aber ihre Höhe unterscheidet sich auf der Grundlage der Größe ihres Inhalts – Marmoy

7

Es ist alte Frage, aber heute anzeigen Should geben Ich löse mein Problem mit diesem

+1

'tableView.IlayNeeeded()' ist der Schlüssel! – SoftDesigner

4

Ich habe Kalk Höhe in ViewDidLayoutSubviews() für Content-View-Controller. Arbeite für mich (Tabellenansicht automatische Zellenabmessungen);

0

Die Kopf- und Fußzeile des Abschnitts sind in der Höhe der Tabelle nicht berücksichtigt, sollten Sie diese

CGSize sz = self.table.contentSize; 
sz.height += self.table.contentInset.bottom + 
      self.table.contentInset.top + 
      self.table.numberOfSections * self.table.sectionHeaderHeight; 
Verwandte Themen