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().separ‌​atorColor

As @Jordan noted in comment, you also can store the result to avoid further evaluation cost.

let defaultTableSeparato‌​rColor = UITableView().separa‌​torColor