4

Ich verwende Xib-Dateien anstelle von Storyboard. Ich habe eine Tabellenansicht mit einigen Dummy-Daten erstellt. Es funktioniert gut, jetzt habe ich eine benutzerdefinierte Zelle mit einigen Beschriftungen und TextFields erstellt. Wie kann ich es als Kopf- oder Fußzeile von UITableView verwenden?So legen Sie eine benutzerdefinierte Zelle als Kopf- oder Fußzeile von UITableView fest

+0

Sie können nicht UITableView Zelle als Kopf- oder Fußzeile verwenden, für die Sie benötigen einen Blick (xib) erstellen, und Sie können es –

+0

Zelle verwenden als Kopfzeile? tableHeaderView ist eine Art von View, keine Zelle – ronan

+0

Wie erstellt man ein UiView mit und Xib? Wenn ich eine neue CocoaTouch-Datei erstelle und sie zur Unterklasse von UIView mache, ist die Option "Auch XIB-Datei erstellen" nicht überprüfbar – Byte

Antwort

1

Sie können eine benutzerdefinierte Ansicht programmgesteuert erstellen. Ich habe den folgenden Code ausprobiert. Probieren Sie es einmal.

override func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { 
     let customview:UIView = UIView(); 
     let label = UILabel(); 
     label.text = "ur custom data" 
     /* 
      You can add any number of subviews you want here 
      And don't forget to add it to your customview. 
     */ 
     customview.addSubview(label) 
     return customview; 
    } 

ähnlich können Sie das gleiche für Header auch tun.

1

Dies ist die Methode hinzufügen den Header von TableView: Darin können Sie alle Steuerelemente wie UIButton, UIImageView, .... etc.

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
     let sectionView = UIView() 
     sectionView.frame = CGRectMake(x,y,height,width) // For Set the Frame 
     sectionView.backgroundColor = UIColor.redColor() 

     return sectionView 
    } 
func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { 
     let sectionView = UIView() 
     sectionView.frame = CGRectMake(x,y,height,width) // For Set the Frame 
     sectionView.backgroundColor = UIColor.redColor() 

     return sectionView 
    } 

Wie oben Sie die Fußzeile des Abschnitts festlegen und Sie die Größe des Kopfes hinzufügen und Fußzeile

func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 
    return 20.0 
} 

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

Ich habe eine cstom-Ansicht erstellt, die eine imageView enthält. Wenn ich versuche, diese Methode mit einer einfachen Ansicht zu verwenden, die eine Hintergrundfarbe hat, funktioniert sie, aber nicht mit meiner benutzerdefinierten Ansicht – Byte

14

Die Antwort ist eigentlich ganz einfach. In viewForHeaderInSection() Zellenobjekt wie in cellForRowAtIndexPath() erstellen und zurückgeben.

Hier ist Beispielcode.

override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
    let cell = tableView.dequeueReusableCellWithIdentifier("cellIdentifier") as! YourTableViewCell 
    return cell 
} 

Sie können Höhe eingestellt für Header wie:

override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 
    return 80 
} 
Verwandte Themen