矩形的着色
问题描述:
我是一个Graphics.I'm新手画一个矩形,它将在一秒钟后改变其颜色。矩形的着色
- (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变化到1 - 试图通过将上255.0f正常化呢?;
答
的RGB库方法期望在0.0和1.0之间浮动。如果你想把你的颜色内部保存为这样的整数,在将它们传递给这些方法之前,将它们除以255.0。
谢谢弗拉基米尔....它的工作原理... – 2010-10-07 07:11:25