Customising the font/background colour of index/se

2020-02-26 21:02发布

问题:

I've read in another thread on SO that you can adjust the font or background colour of the index bar (that is the A-Z # scrollbar) in a UITableView adding a CALayer. My app will be running on iOS 5 and above and since I haven't seen anything about this in the Apple docs, would it be right to say that it simply isn't possible without creating a custom table view?

If this is possible (and acceptable to Apple), how would I go about doing this?

回答1:

As of iOS 6.0 there are two methods that allow you to change the color of the section indexes and the background shown when you drag along the section indexes.

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

Of course this will only execute if the device has 6.0 or later. Under iOS 5.x, nothing will change.



回答2:

Here is code for swift 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


回答3:

For Swift 3.1:

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