llenar un camino con un color sólido es bastante fácil:Cómo llenar una ruta con degradado en 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);
me gustaría dibujar un gradiente en lugar de rojo sólido, pero estoy teniendo problemas. he probado el código que aparece en la pregunta/respuesta: Gradients on UIView and UILabels On iPhone
cuales es:
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];
Sin embargo, esto pinta toda la opinión de que esto es con el gradiente, cubriendo mi ruta original.
¡Si pudiera darle una placa impresionante lo haría! ¿Conoces algún tutorial sobre CGContextSaveGState y esas cosas? Porque la referencia de clase de apple es algo delgada. – Derrick
Derrick: La Guía de programación en 2D de Quartz lo cubre, junto con todo lo demás: http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_overview/dq_overview.html#//apple_ref/doc/ uid/TP30001066-CH202-TPXREF132 –
Después de usar su código de ejemplo, mi sombra ha desaparecido. He intentado reubicar la línea de sombra ("CGContextSetShadow (context, CGSizeMake (5.0, -5.0), 4);") antes de guardar gstate, después de ella, antes de restaurar el gstate, después de él, antes y después del recorte - nada ayudado. – Doron