【问题标题】:Obj-C, set color of UILabel based on plist value?Obj-C,根据plist值设置UILabel的颜色?
【发布时间】:2011-08-02 03:10:41
【问题描述】:
我创建了一个带有表格的 iPhone 应用程序,该表格在选择一行时会推送标准详细视图 .xib。我已经成功地能够从我拥有的 plist 中填充我在该 nib 文件中拥有的几个 UILabel 的文本值,这是一个字符串字典数组。因此,对于选择的每个表行,详细视图将使用包含在单个字典中的信息填充这些标签,因为 UILabel 链接到 plist 中的键。我想知道是否可以根据该 plist 中每个字典中的键来更改每个 UILabel 的颜色。
例如:
表第 1 行推送一个视图,其中 UILabel 1 为红色,UILabel 2 为橙色,UILabel 3 为黄色,依此类推。
表第 2 行推送一个视图,其中 UILabel 1 为紫色,UILabel 2 为棕色,UILabel 3 为蓝色,依此类推。
我希望能够在每个字典中定义每个标签的颜色。
一定有办法做到这一点!
非常感谢您的帮助!
【问题讨论】:
标签:
iphone
objective-c
xcode
uilabel
xib
【解决方案1】:
是的,您可以这样做。您需要定义这种结构的字典(这只是一种方法):
Root Dictionary
-UILabelA
Red -> 143
Green -> 225
Red -> 002
-UILabelB
Red -> 243
Green -> 235
Red -> 235
-UILabelc
Red -> 198
Green -> 025
Red -> 111
然后,假设您需要 UILabelA 的颜色。你要做的就是:
NSDictionary *labelADict = [[NSDictionary dictionary] objectForKey:@"UILabelA"];
//Then create the color
float red = [[labelADict objectForKey:@"Red"] floatValue] / 255.0f;
float green = [[labelADict objectForKey:@"Green"] floatValue] / 255.0f;
float blue = [[labelADict objectForKey:@"Blue"] floatValue] / 255.0f;
UIColor *color = [UIColor colorWithRed:red
green:green
blue:blue
alpha:1.0];
[labelA setTextColor:color];
您可以为每个表格/单元格动态地执行此操作。