0

これの何が問題なのか考えてみてください:

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

@implementation で配列を定義しました。Xcode に次のエラーが表示されます。

目に見えない@interfaceforNSArrayは、セレクターを宣言しisEqualToString:ます。

アイデアは、配列内の文字列値が文字列「緑」と等しい場合、セルの背景が緑になるということです (の値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

特にisEqualToStringを使用して文字列と比較できないようですstatus。のようなものを使用するか、に変更してNSArrayみてください[status objectAtIndex:0];statusNSString

また、CRDaveは正しいです。すべての色番号を255で割る必要があります。技術的には255.0だと信じているCGFloatsです。それ以外の場合、数値は丸められ、毎回0(または1)になります。

実際の緑色が必要な場合は、そのまま使用することもできます[UIColor greenColor];(ただし、特定の緑色が必要な場合を除く)。

于 2013-01-30T20:25:07.847 に答える