使用[UIColor colorWithRed:green:blue:alpha:]不能与UITableView seperatorColor一起使用?

skå*_*fan 86 iphone cocoa-touch uitableview ios4

我正在尝试配置深灰色分色器.为什么以下什么都不做?

self.tableView.seperatorStyle = UITableViewCellSeperatorStyleSingleLine;
self.tableView.seperatorColor = [UIColor colorWithRed: 127 green:127 blue:127 alpha:1];
Run Code Online (Sandbox Code Playgroud)

返回一个没有分隔符的表.

一旦我使用[UIColor blackColor],我就会得到分离器.这是怎么回事?

Jon*_*an. 211

你需要除以 255.0

因为我几乎没有使用介于1.0和0.0之间的值,所以我创建了一个非常简单的UIColor类别,它自己做了一个看起来很混乱的部门:(来自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
Run Code Online (Sandbox Code Playgroud)

所以你可以这样做(如果你导入我上面链接的类别):

[UIColor colorWithR:127 G:127: B:127 A:1];
Run Code Online (Sandbox Code Playgroud)

  • 行业中的0-1标准值是多少?你可以打开任何照片编辑应用程序,颜色选择器给你一个0-255的值,不管我好奇他们为什么会让你做额外的工作划分? (5认同)

lxt*_*lxt 59

因为你的UIColor方法需要一个0-1的浮点数,而不是0-255.您需要将所有RGB值除以255.0,如下所示:

self.tableView.seperatorColor = [UIColor colorWithRed:127.0f/255.0f green:127.0f/255.0f blue:127.0f/255.0f alpha:1.0f];
Run Code Online (Sandbox Code Playgroud)