2010-10-07 11 views
0

Je suis un débutant à Graphics.I suis en train de dessiner un rectangle qui va changer sa couleur après une seconde.Coloriage d'un rectangle

- (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); 
} 

Je change la couleur du rectangle à l'aide de la méthode de changeColorOfNumbers. Voici la méthode

- (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; 
} 
} 

Le problème est que certains des couleurs RVB que j'application ne sont pas apparaître. Qu'est-ce que je fais mal ici .....

... Merci

Répondre

1

composants de couleur doivent varier de 0 à 1 - essayez de les normaliser en divisant le 255.0f?;

+0

Merci Vladimir .... Cela fonctionne ... –

2

Les méthodes de la bibliothèque RGB supposent des valeurs flottantes comprises entre 0,0 et 1,0. Si vous voulez stocker vos couleurs en interne comme des entiers, divisez-les par 255.0 avant de les passer à ces méthodes.