背景颜色不按预期工作

时间:2012-03-15 21:01:52

标签: iphone

我正在尝试将自定义RGB颜色应用于背景,但它没有显示预期的颜色,而是始终显示白色:

UIColor *color = [UIColor colorWithRed:76 green:76 blue:76 alpha:1.0];
mainTable.backgroundColor       = color;
self.scrollView.backgroundColor = color;

然而,如果我将一个参数更改为最大值,例如红色:255,那么我确实看到红色,任何想法为什么我没有看到我正在寻找的颜色:76 76 76应该给出某种深灰色

THX

3 个答案:

答案 0 :(得分:4)

colorWithRed:green:blue:alpha的参数需要为CGFloat,范围从0到1,其中0为0,1为255.因此,您的代码看起来应该更像这样:

UIColor *color = [UIColor colorWithRed:76.0/255.0
                                 green:76.0/255.0
                                  blue:76.0/255.0
                                 alpha:1.0];

答案 1 :(得分:2)

这总是让我。我的很多图形应用程序都向我展示了HEX中的Color。我们已经将所有代码切换为使用宏来将HEX值转换为0-1缩放值。

// Color RGB ease of access
#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]

因此,在将The Above添加到.pch之后,您可以使用:

UIColor color = UIColorFromRGB(0x4C4C4C);
mainTable.backgroundColor       = color;
self.scrollView.backgroundColor = color;

答案 2 :(得分:1)

您必须在0到1之间使用CGFloat,而在int

<{1}}而不是UIColor *color = [UIColor colorWithRed:76 green:76 blue:76 alpha:1.0];

来自iOS API

  

colorWithRed:绿:蓝:阿尔法:

     

使用指定的不透明度和RGB创建并返回颜色对象   组件值。   +(UIColor *)colorWithRed:(CGFloat)红绿色:(CGFloat)绿色蓝色:(CGFloat)蓝色alpha:(CGFloat)alpha参数

The red component of the color object, specified as a value from 0.0 to 1.0. green

The green component of the color object, specified as a value from 0.0 to 1.0. blue

The blue component of the color object, specified as a value from 0.0 to 1.0. alpha

The opacity value of the color object, specified as a value from 0.0 to 1.0.