我有一个pickerView,它有一个颜色组件。
我有一个textField(textOther),现在我有了明确定义的所有可用颜色的NSMutableArray。
如何将所有这些颜色(字符串!)传递给这些textField?
textField setTextColor只会设置一种颜色,但要将字符串传递给颜色我该怎么办?
谢谢!
答案 0 :(得分:8)
最好创建一个将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;
}
答案 1 :(得分:1)
要从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];
答案 2 :(得分:0)
我认为最简单的方法是使用预定义NSDictionary
实例生成UIColor
,并将它们映射为键值对; keys是表示颜色的字符串,value是实际的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];
如果你想要传递一种颜色(给出一个字符串AKA所说颜色的键),你可以简单地这样做:
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
希望这能回答你的问题!