2016-07-28 7 views
2

Ich änderte eine TableView von Plain zu Grouped, so dass die Kopf-/Fußzeile nicht über die Tabelle schwebt und am oberen und unteren Rand der Tabelle verankert bleibt. Das war einfach, aber jetzt funktioniert die von mir eingerichtete Schriftartenformatierung nicht. Merkwürdigerweise scheinen alle anderen Formatierungen der Kopf-/Fußzeile zu funktionieren. Irgendwelche Gedanken darüber, was los ist und was mir fehlt, werden geschätzt!TableView Header/Footer Schrift in gruppierter Tabelle (Swift)

-Code unten:

// Setup format of the header 
func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) { 

    let title = UILabel() 
    title.font = UIFont(name: "Avenir Book", size: 12) 
    title.textColor = UIColor.whiteColor() 


    let header: UITableViewHeaderFooterView = view as! UITableViewHeaderFooterView 
    header.contentView.backgroundColor = UIColor(red: 30/255, green: 30/255, blue: 50/255, alpha: 1) 
    header.textLabel!.font = title.font 
    header.textLabel?.textColor = title.textColor 
    header.textLabel?.numberOfLines = 0 
    header.textLabel?.lineBreakMode = NSLineBreakMode.ByWordWrapping 
    header.textLabel?.textAlignment = NSTextAlignment.Center 

} 

in einem einfachen Tisch alle oben funktioniert gut und sieht wie folgt aus:

enter image description here

Allerdings, wenn ich zu gruppierte Tabelle alle Formatierungen ändern scheint, außer dem Schriftstil dieses dieses zu zeigen:

I am puzzled about where the ALL CAPS is coming from

Ich bin verwirrt, woher die ALL CAPS kommt.

Ich habe versucht, die Lösung von this question/answer zu implementieren, konnte aber auch nicht funktionieren. Danke für deine Ideen!

Antwort

2

Unter der Annahme, dass Sie die Zeichenfolge für den Abschnittstitel in diesem Verfahren vorgesehen:

func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? { 

Aber in einer gruppierten Tableview, wird diese Zeichenfolge in allen Caps geändert. Um die alle Kappen zu entfernen, versuchen Sie eine dieser beiden Linien in der willDisplayHeaderView Methode hinzu:

header.textLabel?.text = header.textLabel!.text!.capitalizedString 
header.textLabel?.text = header.textLabel!.text!.lowercaseString 

Die erste wird den ersten Buchstaben jedes Wortes Kapital zu schlagen und die zweite wird alles Klein machen. Wenn Sie keine von denen möchten, können Sie die Zeichenfolge direkt hinzufügen:

header.textLabel?.text = "Here are a few options for you. Select to learn more" 
+0

Ah macht Sinn! Vielen Dank! Ich ging mit der Option des Hinzufügens der Zeichenfolge in titleForHeaderInSection, um den Satzfall beizubehalten. – Ben