2010-11-26 13 views
0

Ich versuche, etwas genau wie der Headerbeispielcode zu implementieren, die apple provides:Benutzerdefinierte Kopf- und Fußzeilen in einer iPhone Tabellenansicht

Leider Interface Builder sie verwendete, um hier die meiste Arbeit zu tun, und ich fange an, zu sehen, dass Interface Builder ist die schwerste Sache in der iPhone-Entwicklung zu behandeln.

Mein Tisch funktioniert gut, aber die Kopf- und Fußzeile sind nicht da. Meine Frage ist, wie kann ich es zum Laufen bringen?

Mein Code ist identisch mit Apple, mit einigen Namensänderungen:

- (void)viewDidLoad 
{ 
    // headerView 
    CGRect newFrame = CGRectMake(0.0, 0.0, self.tableView.bounds.size.width, self.headerView.frame.size.height); 
    self.headerView.backgroundColor = [UIColor clearColor]; 
    self.headerView.frame = newFrame; 
    self.tableView.tableHeaderView = self.headerView; // note this will override UITableView's 'sectionHeaderHeight' property 

    // set up the table's footer view based on our UIView 'myFooterView' outlet 
    newFrame = CGRectMake(0.0, 0.0, self.tableView.bounds.size.width, self.footerView.frame.size.height); 
    self.footerView.backgroundColor = [UIColor clearColor]; 
    self.footerView.frame = newFrame; 
    self.tableView.tableFooterView = self.footerView; // note this will override UITableView's 'sectionFooterHeight' property 

//... 

Das Problem in meiner xib Datei sein muss, aber die Beispieldatei hat einen riesigen Feder, die auf alles, den ganzen Weg definiert zurück das Fenster, damit ich das nicht benutzen kann. Ich musste mein eigenes machen.

Ich habe mit einem uitableviewcontroller und einer Feder begonnen und Kopf- und Fußzeilenansichten zur Feder hinzugefügt.

Ich verband sie mit ihren jeweiligen IBOutlets in der Tabellenansicht Controller-Unterklasse.

Der Delegat und die Datenquelle sind verbunden und alle Tabellenzellen funktionieren einwandfrei.

Was habe ich vergessen? Warum macht es nicht die Kopf- und Fußzeile?

Follow-up Frage: Wie kann ich lernen, IB zu verwenden? Ich versuche es zu vermeiden, aber manchmal kann ich es nicht. Es scheint wirklich schlecht dokumentiert zu sein.

Antwort

0

Es funktionierte, als ich initWithNibNamed: verwendete, um die view zu erstellen. Ich bin mir nicht wirklich sicher warum. Es scheint die .nib zu verwenden, wenn ich initWithStyle: verwende. Ich muss zugeben, ich bin immer noch verschwommen auf die Beziehung zwischen UIViewControllers und .nib s ...

Verwandte Themen