Search code examples
iphonecocoa-touchuitableviewios4

Using [UIColor colorWithRed:green:blue:alpha:] doesn't work with UITableView seperatorColor?


I'm trying to configure a dark gray seperator color. Why does the following do nothing?

self.tableView.seperatorStyle = UITableViewCellSeperatorStyleSingleLine;
self.tableView.seperatorColor = [UIColor colorWithRed: 127 green:127 blue:127 alpha:1];

returns a table with no seperators at all.

As soon as I use [UIColor blackColor] then I get seperators just fine. What's the deal?


Solution

  • You need to divide by 255.0

    Because I hardly ever use values between 1.0 and 0.0, I created a very simple UIColor category that does the messy looking division by itself: (from http://github.com/Jon889/JPGeneral)

    //.h file
    @interface UIColor (JPExtras)
    + (UIColor *)colorWithR:(CGFloat)red G:(CGFloat)green B:(CGFloat)blue A:(CGFloat)alpha;
    @end
    
    //.m file
    @implementation UIColor (JPExtras)
    + (UIColor *)colorWithR:(CGFloat)red G:(CGFloat)green B:(CGFloat)blue A:(CGFloat)alpha {
        return [UIColor colorWithRed:(red/255.0) green:(green/255.0) blue:(blue/255.0) alpha:alpha];
    }
    @end
    

    So you can just do(If you import the category I linked to above):

    [UIColor colorWithR:127 G:127: B:127 A:1];