Obj-C,根据plist值设置UILabel的颜色?

时间:2011-08-02 03:10:41

标签: iphone objective-c xcode uilabel xib

我创建了一个带有桌子的iPhone应用程序,当选择了一行时,该桌面会推送标准的详细视图.xib。我已经成功地能够从我拥有的plist中填充该nib文件中的几个UILabel的文本值,这是一个字符串字典数组。因此,对于所选的每个表行,详细视图将使用单个字典中包含的信息填充这些标签,因为UILabel链接到plist中的键。我想知道是否可以根据该plist中每个字典中的一个键来改变每个UILabel的颜色。

例如: 表格行1按下UILabel 1为红色,UILabel 2为橙色,UILabel 3为黄色,依此类推的视图。 表格行2推送的视图中UILabel 1为紫色,UILabel 2为棕色,UILabel 3为蓝色,依此类推。

我希望能够在每个字典中定义每个标签的颜色。

必须有办法做到这一点! 非常感谢你的帮助!

1 个答案:

答案 0 :(得分:2)

是的,你可以这样做。你需要定义这个结构的字典(这只是一种方式):

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];

您可以为每个表格/单元格动态执行此操作。