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
Antwort
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.
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
}
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
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
}
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 –
Zelle verwenden als Kopfzeile? tableHeaderView ist eine Art von View, keine Zelle – ronan
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