0

通常、私はしばしば次のように背景色を設定します: aView.backgroundColor = [UIColor redColor];

今、私はすべての色の名前を NSArray に保持しています:

colorsArray = [[NSMutableArray alloc] initWithObjects:
               @"blackColor",
               @"darkGrayColor",
               @"lightGrayColor",
               @"whiteColor",
               @"grayColor",
               @"redColor",
               @"greenColor",
               @"blueColor",
               @"cyanColor",
               @"yellowColor",
               @"magentaColor",
               @"orangeColor",
               @"purpleColor",
               @"brownColor",
               nil];

そして、そのような NSString ポインターで背景を設定したい

NSInteger i = 0;
for (aView in viewArray) {
   NSString *colorName = [colorsArray objectAtIndex:i];
   aView.backgroundColor = color with colorName;//Can't find a method to set
   i++;
}

UIColor クラスを確認しましたが、colorName へのポインタで色を設定するメソッドが見つかりません。助けてください!別の方法はありますか?ありがとう!

4

2 に答える 2

5

少し反省して薬が下がる…

NSInteger i = 0;
for (aView in viewArray) {
    NSString *colorName = [colorsArray objectAtIndex:i];
    aView.backgroundColor = [[UIColor class] performSelector:NSSelectorFromString(colorName)];
   i++;
}
于 2013-02-22T15:07:56.353 に答える
2
aView.backgroundColor = [UIColor performSelector:NSSelectorFromString(colorName)];
于 2013-02-22T15:08:58.737 に答える