Xcode 如何将NSString转换为UIColor

Xcode 如何将NSString转换为UIColor,xcode,string,nsstring,ios5,uicolor,Xcode,String,Nsstring,Ios5,Uicolor,我有一个pickerView,它有一个颜色组件 我有一个textField(textOther),现在我有了所有显式定义的可用颜色的NSMutableArray 如何将所有这些颜色(即字符串!)传递给这些文本字段 textField setTextColor将只设置一种颜色,但要将字符串传递给一种颜色,我该怎么做 谢谢 我认为最干净的方法是使用预定义的UIColor实例制作NSDictionary,并将它们映射为键值对;键是表示颜色的字符串,值是实际的UIColor对象 因此,如果您希望将红色和

我有一个pickerView,它有一个颜色组件

我有一个textField(textOther),现在我有了所有显式定义的可用颜色的NSMutableArray

如何将所有这些颜色(即字符串!)传递给这些文本字段

textField setTextColor将只设置一种颜色,但要将字符串传递给一种颜色,我该怎么做


谢谢

我认为最干净的方法是使用预定义的
UIColor
实例制作
NSDictionary
,并将它们映射为键值对;键是表示颜色的字符串,值是实际的
UIColor
对象

因此,如果您希望将红色和蓝色作为可能的颜色(如果我理解正确,它们现在位于
NSMutableArray
中),您可以制作一个
NSDictionary
,如下所示:

NSArray * colorKeys = [NSArray arrayWithObjects:@"red", @"blue" nil];
NSArray * colorValues = [NSArray arrayWithObjects:[UIColor redColor], [UIColor blueColor], nil];
NSDictionary * colorMap = [NSDictionary dictionaryWithObjects:colorValues forKeys:colorKeys];
如果您想传递一种颜色(给定一个字符串,即所述颜色的键),只需执行以下操作:

NSString * chosenColor = textField.text; // extract desired color from input in textField
textField.textColor = [colorMap valueForKey:chosenColor]; // use this color string to find the UIColor element in the colorMap

希望这能回答你的问题

最好创建一个方法将NSString转换为UIColor。您应该有一个NSString,例如whiteColor或blueColor,您可以通过以下方式进行转换:

  -(UIColor *)getColor:(NSString*)col

  {

  SEL selColor = NSSelectorFromString(col);
  UIColor *color = nil;
  if ( [UIColor respondsToSelector:selColor] == YES) {

    color = [UIColor performSelector:selColor];
   }  
    return color;
  }

要将NSString转换为UIColor,请执行以下操作:

NSString *redColorString = @"25";
NSString *greenColorString = @"82";
NSString *blueColorString = @"125";

UIColor *color = [UIColor colorWithRed:[redColorString floatValue]/255.0
                                 green:[greenColorString floatValue]/255.0
                                  blue:[blueColorString floatValue]/255.0
                                 alpha:1.0];