What is the UIColor of the default UITableView separator?
Swift 3
Just set to nil to revert to default.
tableView.separatorColor = nil
… in terms of CGContextSetRGBStrokeColor
it should be:
CGContextSetRGBStrokeColor (
CGContextRef c,
224.0/255.0,
224.0/255.0,
224.0/255.0,
CGFloat alpha
);
Quite simple and hopefully a solution for your problem.
It seems it changed for iOS 7:
Now the colour is RGB(200, 199, 204):
[UIColor colorWithRed:200/255.0 green:199/255.0 blue:204/255.0 alpha:1.0];
And don't forget the proper line height is 1 px. The code for creating corresponding UIView:
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 640, 1/[[UIScreen mainScreen] scale])];
view.backgroundColor = [UIColor colorWithRed:200/255.0 green:199/255.0 blue:204/255.0 alpha:1.0];
The color is not guaranteed to be a specific color. It can be changed over OS and SDK versions.
You can retrieve exact color dynamically by accessing separatorColor
property.
UITableView* TV = [[UITableView alloc] init];
UIColor* C = [TV separatorColor];
CGColorRef CGC = [C CGColor];
Now you can get the each channel values through UIColor
's methods. Or use the CGColor
directly for drawing.
Here's header file comment of the property in UITableView.h
.
@property(nonatomic,retain) UIColor *separatorColor;
// default is the standard separator gray
If you want to avoid instantiation cost of UITableView
for each time, just get it once and cache it.
As @Isuru noted in comment, you can write in Swift like this.
UITableView().separatorColor
As @Jordan noted in comment, you also can store the result to avoid further evaluation cost.
let defaultTableSeparatorColor = UITableView().separatorColor