我是Graphics的新手。我正在绘制一个矩形,它会在一秒钟后改变颜色。
- (void)drawRect:(CGRect)rect {
[self setWidthHeightOfRectangle];
[self changeColorOfNumbers];
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextClearRect(ctx, rect);
// Draw a solid square
CGContextSetRGBFillColor(ctx, 255, 255, 255, 1);
CGContextFillRect(ctx, CGRectMake(0.0, 24.0, 380.0, 2.0));
CGContextSetRGBFillColor(ctx, redNumber, greenNumber, blueNumber, 1);
CGContextFillRect(ctx, frameToDraw);
}
我正在使用 changeColorOfNumbers 方法更改矩形的颜色。这是方法
- (void)changeColorOfNumbers {
iHit++;
if (iHit==100) {
redNumber=249;
greenNumber=252;
blueNumber=0;
} else if (iHit==200) {
redNumber=0;
greenNumber=168;
blueNumber=245;
} else if (iHit==300) {
redNumber=255;
greenNumber=0;
blueNumber=140;
} else if (iHit==400) {
redNumber=255;
greenNumber=125;
blueNumber=0;
} else if (iHit==500) {
redNumber=0;
greenNumber=176;
blueNumber=72;
} else if (iHit==600) {
redNumber=128;
greenNumber=0;
blueNumber=148;
} else if (iHit==700) {
redNumber=8;
greenNumber=79;
blueNumber=168;
} else if (iHit==800) {
redNumber=127;
greenNumber=212;
blueNumber=20;
} else if (iHit==900) {
redNumber=255;
greenNumber=0;
blueNumber=0;
} else if (iHit==1) {
redNumber=0;
greenNumber=0;
blueNumber=0;
frameToDraw=CGRectMake(0.0, 0.0, 0.0, 50.0);
} else if (iHit==2) {
redNumber=255;
greenNumber=255;
blueNumber=255;
}
}
问题是我正在应用的某些 RGB颜色没有显示出来。我在这做错了什么?.....
...谢谢
答案 0 :(得分:2)
RGB库方法期望浮点数介于0.0和1.0之间。如果你想在内部将颜色存储为这样的整数,在将它们传递给那些方法之前将它们除以255.0。
答案 1 :(得分:1)
颜色分量必须在0到1之间变化 - 尝试通过除以255.0f来标准化它们;