remplir un chemin avec une couleur unie est assez facile:Comment remplir un chemin avec un dégradé dans drawRect :?
CGPoint aPoint;
for (id pointValue in points)
{
aPoint = [pointValue CGPointValue];
CGContextAddLineToPoint(context, aPoint.x, aPoint.y);
}
[[UIColor redColor] setFill];
[[UIColor blackColor] setStroke];
CGContextDrawPath(context, kCGPathFillStroke);
Je voudrais dessiner un gradient au lieu de rouge solide, mais je ne parviens pas à. J'ai essayé le code figurant dans la Question/Réponse: Gradients on UIView and UILabels On iPhone
qui est:
CAGradientLayer *gradient = [CAGradientLayer layer];
[gradient setFrame:rect];
[gradient setColors:[NSArray arrayWithObjects:(id)[[UIColor blueColor] CGColor],
(id)[[UIColor whiteColor] CGColor], nil]];
[[self layer] setMasksToBounds:YES];
[[self layer] insertSublayer:gradient atIndex:0];
Cependant, ce peint toute la vue que ce soit avec la pente, couvrant mon chemin original.
Si je pouvais vous donner un badge génial je le ferais! Connaissez-vous des tutoriels sur le CGContextSaveGState et d'autres choses? Parce que la référence de la classe Apple est plutôt mince. – Derrick
Derrick: Le Guide de programmation 2D Quartz couvre cela, avec tout le reste: http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_overview/dq_overview.html#//apple_ref/doc/ uid/TP30001066-CH202-TPXREF132 –
Après avoir utilisé votre exemple de code, mon ombre a disparu. J'ai essayé de déplacer la ligne d'ombre ("CGContextSetShadow (contexte, CGSizeMake (5.0, -5.0), 4);") avant l'enregistrement de gstate, après cela, befroe la restauration de gstate, après, avant et après le découpage - rien aidé. – Doron