2009-04-17 7 views

Antwort

4

Sie können eine transparente Sicht mit einer festen Höhe auf die tableHeaderView Eigenschaft des Tableview zuweisen. Dadurch werden die Tabelleninhalte um die Höhe der transparenten Ansicht nach unten verschoben.

Sie können dies von Ihrem UITableViewController des viewDidLoad:

// force the table down 70 pixels 
CGRect headerFrame = self.tableView.bounds; 
headerFrame.size.height = 70; 

UIView *header = [[UIView alloc] initWithFrame: headerFrame]; 
header.backgroundColor = [UIColor clearColor]; 

self.tableView.tableViewHeader = header; 

[header release]; 
+0

Dies funktioniert total. Vielen Dank. – CodingWithoutComments

+0

'tableView.tableHeaderView' anstelle von' tableViewHeader' – vaughan

0

Der einfachste Weg, es zu tun, ist wahrscheinlich nur den Rahmen für die Tableview zu ändern. Sie müssen einen Verweis auf die Tableview in Ihrem Controller erhalten, entweder durch eine IBOutlet oder durch die Ansicht in der Ansichtshierarchie zu finden ODER Sie den Rahmen im Interface Builder ändern.

In Code so etwas wie:

tableView.frame = CGRectMake(0.0, 200.0, 320.0, 280.0); 

Würde die Tableview unten über das Display positionieren und seine Höhe begrenzen - die Abmessungen Sie auf abhängen verwenden, ob Sie so eine Tab-Leiste auf die Ansicht und Dinge hatten.

In Schnittstelle baut nur den Tableview wählen, dann die Größe Inspektoren wählen (der Inspektoren Registerkarte mit dem Lineal-Symbol), und stellen Sie die Höhe und y-Offset es zu verschieben, um den Blick nach unten.

+0

Ich dachte nicht, dass Sie eine gruppierte Tabelle in Interface Builder erstellen können. Liege ich falsch? – CodingWithoutComments

+1

Der Unterschied zwischen einer gruppierten Tabellenansicht und einer einfachen Tabellenansicht in IB ist nur die Stileinstellung. Wenn Sie die Stileinstellung in IB gruppiert geändert haben, können Sie damit ähnlich wie bei einer einfachen Tabelle interagieren. Es gibt einige Einschränkungen in meiner Erfahrung wie Hintergrundfarben, die sich für Zellen in einfachen vs gruppierten Tabellen nicht gleich verhalten – paulthenerd

1

Blick auf die delagate zum UITableView.
Sie finden eine Eigenschaft 'heightForHeaderInSection'.

Für Abschnitt 0 Seien Sie der Header größer (Standardeinstellung ist 0) wird die Tabelle auf der Ansicht drücken.

1

Wenn Sie die Tabelle nach unten verschieben, möchten Sie zweifellos den Platz, den Sie UI-Elemente hinzuzufügen, gewinnen können.

An diesem Punkt sollten Sie die Seite in IB zu bauen. Sie können die Größe der Tabellenansicht ändern und die UI-Elemente oberhalb der Tabelle platzieren. Sie können einen UIViewController verwenden, um die Seite zu verwalten und die UITableViewDelegate/Datasource-Protokollmethoden hinzuzufügen, so dass Sie das UITableView als Delegat an Ihren View-Controller anschließen können. Dann können Sie auch die anderen UI-Elemente mit demselben View-Controller verbinden.

+0

Ich dachte nicht, dass Sie eine "gruppierte" Tabelle in Interface Builder erstellen könnten. Korrigieren Sie mich, wenn ich falsch liege ... – CodingWithoutComments

+0

Es gibt ein Dropdown-Menü, um den Tabellenstil für ein UITableView auszuwählen, wählen Sie "gruppiert". Sie können keine Zellen oder Header oder irgendetwas in IB festlegen, aber Sie werden visuell sehen, dass es sich um eine gruppierte Tabellenansicht handelt. –

Verwandte Themen