riempire un percorso con un colore solido è abbastanza facile:Come riempire un tracciato con gradiente in 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);
mi piacerebbe disegnare un gradiente invece di rosso solido, ma sto avendo difficoltà. ho provato il codice elencato nella Domanda/Risposta: Gradients on UIView and UILabels On iPhone
quali è:
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];
Tuttavia, questo dipinge l'intera vista che si tratta con il gradiente, che copre il mio percorso originale.
Se potessi darti un distintivo fantastico lo farei! Conosci qualche tutorial su CGContextSaveGState e cose del genere? Perché il riferimento alla classe delle mele è piuttosto sottile. – Derrick
Derrick: The Quartz 2D Programming Guide copre tutto ciò, insieme a tutto il resto: http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_overview/dq_overview.html#//apple_ref/doc/ uid/TP30001066-CH202-TPXREF132 –
Dopo aver utilizzato il codice di esempio, la mia ombra è scomparsa. Ho provato a spostare la linea d'ombra ("CGContextSetShadow (context, CGSizeMake (5.0, -5.0), 4);") prima del salvataggio di gstate, dopo di esso, prima del ripristino di gstate, dopo di esso, prima e dopo il ritaglio - niente aiutato. – Doron