Obj-C,根据plist值设置UILabel的颜色?
Posted
技术标签:
【中文标题】Obj-C,根据plist值设置UILabel的颜色?【英文标题】:Obj-C, set color of UILabel based on plist value? 【发布时间】: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 为蓝色,依此类推。
我希望能够在每个字典中定义每个标签的颜色。
一定有办法做到这一点! 非常感谢您的帮助!
【问题讨论】:
【参考方案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];
您可以为每个表格/单元格动态地执行此操作。
【讨论】:
以上是关于Obj-C,根据plist值设置UILabel的颜色?的主要内容,如果未能解决你的问题,请参考以下文章