tableView.tintColor = UIColor.redColor();
will do it for you
Swift version:
tableView.sectionIndexBackgroundColor = UIColor.clearColor() //iOS7+
tableView.sectionIndexTrackingBackgroundColor = UIColor.clearColor() //iOS6+
tableView.sectionIndexColor = UIColor.redColor() //iOS6+
To customize the index view height (UITableViewStylePlain
style only):
tableView.sectionIndexMinimumDisplayRowCount = 15
Actually there is not official Apple available to do that. And Apple may reject you app if you do that. If you just wants to customize indexBar then below library may help you.
You can use custom library CollectionIndexTools by Swift(iOS 8+), which you can customize.
https://github.com/ReverseScale/CollectionIndexTools
Here's sample snippet for CollectionIndexTools
lazy var collectionViewIndex: CollectionViewIndex = {
let collectionViewIndex = CollectionViewIndex()
collectionViewIndex.indexTitles = ["c", "v", "t", "m", "n", "w", "e", "r", "t", "y", "u", "i", "o", "p", "h", "d", "c", "b", "q"]
collectionViewIndex.addTarget(self, action: #selector(FakeCollectionViewController.selectedIndexDidChange(_:)), for: .valueChanged)
collectionViewIndex.translatesAutoresizingMaskIntoConstraints = false
return collectionViewIndex
}()
https://github.com/Hyabusa/CMIndexBar
Use this plugin from Hyabusa. Simple replacment for UITableView Index that allows setting of colors
CMIndexBar *indexBar = [[CMIndexBar alloc] initWithFrame:CGRectMake(self.view.frame.size.width-35, 10.0, 28.0, self.view.frame.size.height-20)];
[indexBar setIndexes:[NSMutableArray arrayWithObjects:@"A",@"B",@"C",@"D",@"E",@"F",@"G", nil]];
[self.view addSubview:indexBar];
[indexBar release];
Delegate
- (void)indexSelectionDidChange:(CMIndexBar *)IndexBar:(int)index:(NSString*)title;
It doesn't look like standard index view is customizable.
In my application I just created custom index view instead of standard one. Basically all you need to do here is track touch position in that view and scroll UITableView accordingly. You may also need to add some visual effects - change view's background color on touch and highlight current section title.