【问题标题】:How to set color by pointer to color name?如何通过指向颜色名称的指针设置颜色?
【发布时间】:2013-02-22 15:05:17
【问题描述】:

正常,我经常通过以下方式设置背景颜色: 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 的指针设置颜色的方法。 请帮忙!还有什么办法吗?谢谢!

【问题讨论】:

    标签: ios uicolor


    【解决方案1】:

    稍微反思一下,药就下去了……

    NSInteger i = 0;
    for (aView in viewArray) {
        NSString *colorName = [colorsArray objectAtIndex:i];
        aView.backgroundColor = [[UIColor class] performSelector:NSSelectorFromString(colorName)];
       i++;
    }
    

    【讨论】:

      【解决方案2】:
      aView.backgroundColor = [UIColor performSelector:NSSelectorFromString(colorName)];
      

      【讨论】:

      • @AnoopVaidya 我最初的编辑和你的一模一样(@selector( 位不正确),然后我才意识到它是错误的并删除了它。这可能是巧合,如果是这样,我深表歉意。
      • 我现在删除了我的答案:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-10
      • 2011-07-12
      • 1970-01-01
      • 2016-06-15
      相关资源
      最近更新 更多