2016-11-07 2 views
1

Ich muss eine benutzerdefinierte Kopfzeile für meine Tabellenansicht erstellen. Dazu habe ich eine Klasse des Typs UITableViewHeaderFooterView erstellt, aber ich kann die Überschrift der Tabellenansicht auf dem Storyboard nicht auswählen, um die Klasse einzurichten. Wenn es eine statische Tabellenüberschrift geben würde, wäre sie für dynamische Tabellen nicht sichtbar. Wie kann ich diese Einstellung vornehmen?Anpassen Kopfzeile und Fußzeile der Tabellenansicht mit Swift

Hinweis: Ich verwende Xcode 7.3.1

Ich versuche, so etwas zu tun, aber das Drehbuch: https://github.com/jeantimex/ios-swift-collapsible-table-section

override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
    let header = tableView.dequeueReusableHeaderFooterViewWithIdentifier("header") as! NovaListaTableViewHeader 


    header.titleLabel.text = sections[section].name 
    header.arrowLabel.text = ">" 
    header.setCollapsed(sections[section].collapsed) 

    header.section = section 
    header.delegate = self 

    return header 
} 
+0

Teilen Sie Ihren Code und teilen Sie ähnliche Fragen, die Sie auf Stackoverflow lesen. Sonst würde Ihre Frage sehr bald markiert werden. : | – Honey

Antwort

3

Es gibt mehrere Möglichkeiten, das zu tun. Die meisten tun das programmatisch und manche erreichen es über Storyboard und Programm.

so hängt es ganz von Ihnen ab, wie Sie es erreichen wollen.

Ich kann mit Ihnen einen einfachste Weg, teilen Sie Ihre Kopf- und Fußbereich anpassen.

, wenn Sie eine gute Kontrolle über Storyboard Versuch ein

UITableViewCell 

Jetzt dekorieren zu erstellen, wie Sie wollen und in Kennung Name it Section es jetzt als Wiederverwendungszelle verwenden

Nach dieser Verwendung dieser Delegatmethode ich teile ein objektives C Delegierter,

 override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 


var headerView: SectionHeaderTableViewCell? = tableView.dequeueReusableCellWithIdentifier("SectionHeader") 
    if (headerView == nil) { 
    headerView = SectionHeaderTableViewCell(style:UITableViewCellStyle.Subtitle, reuseIdentifier:"SectionHeader") 
    } 
    headerView!.textLabel!.text = "Hello World" 


      return headerView; 

     } 

jetzt tun gleiche für Fußzeile.

+0

dies funktioniert nicht für mich in Xcode 8.3.3 und Mac OS 10.12.4 – nyxee

+1

Sie vergessen zu erwähnen, dass 'SectionHeaderTableViewCel' sollte Unterklasse' UITableViewHeaderFooterView ' – nyxee

+0

Vergessen Sie nicht, die Methode Höhe für die Überschrift im Abschnitt andernfalls zu überschreiben Standardmäßig wird nichts angezeigt, da standardmäßig 0 zurückgegeben wird. Fügen Sie also Folgendes hinzu: 'override func tableView (_ tableView: UITableView, heightForHeaderInSection-Abschnitt: Int) -> CGFloat { return 60 }' –

Verwandte Themen