Окраска прямоугольника - PullRequest
0 голосов
/ 07 октября 2010

Я новичок в 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, которые я применяю, не отображаются. Что я тут не так делаю? .....

Спасибо ...

Ответы [ 2 ]

2 голосов
/ 07 октября 2010

Методы библиотеки RGB ожидают плавающие значения от 0,0 до 1,0.Если вы хотите хранить свои цвета внутри себя как целые числа, разделите их на 255,0, прежде чем передавать их этим методам.

1 голос
/ 07 октября 2010

Цветовые компоненты должны варьироваться от 0 до 1 - попробуйте нормализовать их, разделив на 255.0f;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...