【问题标题】: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];
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-11
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 2015-07-17
      • 1970-01-01
      • 2011-12-27
      相关资源
      最近更新 更多