2012-03-27 12 views
1

Ok Ich rufe einen Webdienst an, um Richtlinien zurück zu erhalten. Der Benutzer kann mehrere Richtlinien haben, und diese Richtlinien sollen eine eigene Tabelle haben (Bitte beachten Sie, dass es keinen eigenen Abschnitt in einer Tabelle gibt). Diese Tabellen können alle eine unbekannte Anzahl von Zeilen enthalten, abhängig von der Anzahl der Änderungen der Richtlinie und der Richtlinie selbst. Also muss ich die Tabellen dazu dynamisch auf einem UIScrollView generieren. Weiß jemand wie ich das machen kann? Wenn Sie mich nicht verstehen, dann fragen Sie bitte.Dynamisch generieren UITableViews

Antwort

3

Sie können UITableViews erstellen programmatisch mit

UITableView *tableView = [[UITableView alloc] init]; 

dann die View-Controller setzen die Delegierten und Datenquelle der Tabelle Ansicht zu sein:

tableView.delegate = self; 
tableView.dataSource = self; 

und der Tabellen-Ansicht auf Ihre Scroll-Ansicht wie zum Beispiel:

tableView.frame = CGRectMake(0, 0, 320, 500); //use whatever frame you want here 
[self.scrollView addSubview:tableView]; 

und um die Tabellenansichten zu verfolgen, Sie können das jedem zugeordnete Tag verwenden. Diese sind wahrscheinlich am besten oben in der .m-Datei als Konstanten definiert. Sie können sie entsprechend benennen, damit Sie wissen, für welche Richtlinie die Tabellenansicht gelten soll. Zum Beispiel an der Spitze der von .m-Datei:

#define kFirstPolicyTableViewTag 1 

und dann, wenn der Tabellen-Ansicht zu erstellen:

tableView.tag = kFirstPolicyTableViewTag; 

dann, wenn sie mit einem der Delegierten oder Datenquelle Methoden zu tun, überprüfen Sie die Tag, damit Sie wissen, mit wem Sie es zu tun haben. Zum Beispiel:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    switch (tableView.tag) { 
     case kFirstPolicyTableViewTag: { 
      //return the number of rows for that tag 
     } 
    } 
} 
+0

Danke sehr detailliert. +1 – Popeye

+0

Vielen Dank +1 hat es geholfen – Popeye

2

Ich empfehle, eine unterteilte Tabellenansicht zu erstellen. So können Sie Richtlinien in jedem Abschnitt laden. Außerdem können Sie in jedem Abschnitt einen Abschnittsüberschrift geben, um weitere Informationen zu erhalten.

+0

Ich würde es gerne so machen, da es viel einfacher ist, aber ich wurde angewiesen, es anders zu machen. Kunden sind ein Schmerz. – Popeye

+0

Dank +1 für die Hilfe – Popeye

2

Das Lehrbuch Ansatz für N Politik, die jeweils mit M Änderungen (beide N und M willkürlich und möglicherweise große) ist UINavigationController mit einer Tabelle der Politik auf der obersten Ebene. Wenn Sie eine Zeile (eine Richtlinie) auswählen, wird an einen Richtlinien-Detailansicht-Controller gesendet, der eine Tabelle mit Änderungen für diese Richtlinie enthält.

+0

Danke +1. So wie ich es gemacht habe, aber weil der Kunde nun Details darüber mitgeteilt hat, wie es funktionieren soll, musste ich es ändern. – Popeye

Verwandte Themen