根据数组iOS中的值更改单元格的颜色

任何想法这是什么问题:

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

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

NSArray没有可见的@interface声明select器isEqualToString:

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

提前致谢。

问题在于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:

看来, status是一个NSArray你不能比较,特别是使用isEqualToString一个string。 尝试使用像[status objectAtIndex:0]; 或将status更改为NSString

此外CRDave是正确的,你应该将你所有的颜色数字除以255.那么他们是CGFloats,我相信在技术上255.0否则数字将四舍五入,并导致每次0(或1)。

如果你想要一个真正的绿色,你也可以使用[UIColor greenColor]; (除非你想要一个特定的绿色)