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的颜色?的主要内容,如果未能解决你的问题,请参考以下文章

20160118UILabel 设置.tff格式字体

UIlabel的字体自适应属性

根据 UISlider 值更改 UILabel 的案例语句

根据 UILabel 的高度设置 UITableViewCell 的高度

根据UILabel动态设置UIView的高度

根据包含的文本设置 UILabel 的行数 - Objective C 和/或 Swift