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

时间:2011-04-12 20:55:02

标签: iphone cocoa-touch uitableview ios4

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

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

返回一个完全没有分隔符的表。

一旦我使用 [UIColor blackColor] ,我就会得到分离器。这是什么交易?

4 个答案:

答案 0 :(得分:210)

您需要除以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

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

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

答案 1 :(得分:58)

因为你的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];

答案 2 :(得分:3)

您必须将值除以255,因为范围是0-1。取127/255 = 0.49f然后输入。它在那里,它只是白色:))

编辑:评论的原因,我添加了一些关于如何解决它的代码:

-(float)getRGBValue:(int) rgbValue{  
    return rgbValue/255.0;
]

答案 3 :(得分:0)

UIColor中有两个新方法可以接受0到255之间的整数值:

UIColor(red: Int, green: Int, blue: Int)

UIColor(alpha: Float, red: Int, green: Int, blue: Int)

它不在文档中,但我已经使用过了,它的工作原理就像一个魅力。