我正在尝试将自定义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
答案 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
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.