2012-11-07 5 views
20

Ich habe in einem anderen Thread auf SO gelesen, dass Sie die Schriftart oder Hintergrundfarbe der Indexleiste (das ist die Scrollbar AZ #) in einem UITableView hinzufügen können ein CALayer. Meine App wird auf iOS 5 und höher ausgeführt, und da ich in den Apple-Dokumenten nichts davon gesehen habe, wäre es richtig zu sagen, dass es einfach nicht möglich ist, eine benutzerdefinierte Tabellenansicht zu erstellen?Anpassen der Schriftart/Hintergrundfarbe der Index-/Abschnittsleiste in UITableView

Wenn dies möglich ist (und akzeptabel für Apple), wie würde ich das tun?

Antwort

43

Ab iOS 6.0 gibt es zwei Methoden, mit denen Sie die Farbe der Abschnittsindizes und den Hintergrund ändern können, wenn Sie entlang der Abschnittsindizes ziehen.

if ([tableView respondsToSelector:@selector(setSectionIndexColor:)]) { 
    tableView.sectionIndexColor = ... // some color 
    tableView.sectionIndexTrackingBackgroundColor = ... // some other color 
} 

Natürlich wird dies nur ausgeführt, wenn das Gerät 6.0 oder höher hat. Unter iOS 5.x ändert sich nichts. Hier

+16

Es gibt auch sectionIndexBackgroundColor, die ich verwendet, glauben löschen auf Standard und wird nun auf eine gräuliche Farbe gesetzt unter iOS7. –

+0

Danke! Es funktioniert gut. – Raja

5

ist Code für eine schnelle 2+

self.tableView.sectionIndexTrackingBackgroundColor = CustomColor 
// background color while the index view is being touched 
self.tableView.sectionIndexBackgroundColor = CustomColor 
// title/text color of index items 
self.tableView.sectionIndexColor = CustomColor 
+0

Hallo! Weißt du, wie man die Schrift ändert? – Alexander

0

Für Swift 3.1:

self.tblViewForContacts.sectionIndexTrackingBackgroundColor = self.view.backgroundColor 
self.tblViewForContacts.sectionIndexBackgroundColor = self.view.backgroundColor