【问题标题】:does anyone know how to use colorcodes instead of just assigning colors with UIColor有谁知道如何使用颜色代码而不是仅仅用 UIColor 分配颜色
【发布时间】:2009-09-30 14:10:10
【问题描述】:

正如标题所说,我想使用颜色代码而不是这样做

lblTemp.textColor = [UIColor colorWithRed: 0 green:0x99/255.0 blue:0 alpha:1.0];

例如,我有以下颜色代码#30ae36,我该如何使用它而不是执行上述操作。

【问题讨论】:

    标签: objective-c iphone


    【解决方案1】:

    我使用这个方便的宏:

    #define UIColorFromRGB(rgbValue) [UIColor \
    colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
    green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
    blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
    

    (我可能已经得到它from here,但你可以在很多地方找到它。无论如何,值得阅读此链接上关于宏与内联函数的讨论。)

    如果你想从一个字符串(例如从一个 plist)初始化颜色,你可以使用这个:

    unsigned    rgbValues;
    [[NSScanner scannerWithString:@"0xFF0000"] scanHexInt: &rgbValues];
    UIColor* redColor = UIColorFromRGB(rgbValues);
    

    【讨论】:

      【解决方案2】:

      UIColor 没有为此提供默认方法,但是,您可以为 UIColor 创建一个所谓的category,它采用十六进制值(不带 #)并将其转换为相应的 RGB 组件并使用这些组件提供给 UIColor 的 colorWithRed:green:blue:alpha:。

      【讨论】:

      • 已经弄明白了....
      【解决方案3】:

      这应该可以解决此代码 #30ae36

      lblTemp4.textColor = [UIColor colorWithRed:0x*30*/255.0 green:0x*AE*/255.0 blue:0x*36*/255.0 alpha:1.0];
      

      【讨论】:

        【解决方案4】:

        在上一个答案中,jovany 中的 * * 星号应省略。所以#30ae36 变成:

        lblTemp4.textColor = [UIColor colorWithRed:0x30/255.0 green:0xAE/255.0 blue:0x36/255.0 alpha:1.0];
        

        (也许很明显,但我第一眼没看懂)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-03-07
          • 2020-03-25
          • 1970-01-01
          • 2014-03-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多