0

知道这有什么问题:

 if ([status isEqualToString: @"green"])
     [[cell contentView] setBackgroundColor: [UIColor colorWithRed: 200 green: 191 blue: 231 alpha: 1]];

我在@implementation 中定义了数组。Xcode 显示以下错误:

no visible @interfaceforNSArray声明选择器isEqualToString:

这个想法是当数组中的字符串值等于字符串“green”时,单元格背景变为绿色(其中的值colorWithRed不是实际的绿色)

提前致谢。

4

2 回答 2

4

问题在于 RGB 值。

在正常 RGB 中,介于 0 到 255 之间

+ (UIColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha

取值在 0.0 到 1.0 之间

所以你可以这样做:

[[cell contentView] setBackgroundColor: [UIColor colorWithRed: 200.0/255.0 
                                                        green: 191.0/255.0 
                                                         blue: 231.0/255.0 
                                                         alpha: 1]];

看看这里colorWithRed:green:blue:alpha:

于 2013-01-30T20:23:05.207 回答
1

看来,statusNSArray无法将其与字符串进行比较,尤其是使用 isEqualToString。尝试使用类似[status objectAtIndex:0];或更改statusNSString

CRDave 也是正确的,您应该将所有颜色数字除以 255。好吧,它们是 CGFloats,我相信从技术上讲是 255.0,否则数字将被四舍五入并导致每次都为 0(或 1)。

如果您想要实际的绿色,您也可以使用[UIColor greenColor];(除非您想要特定的绿色)

于 2013-01-30T20:25:07.847 回答