Crear una clase llamada VignetteEffect
como una subclase de UIView
Añadir este código a su método -drawRect:
:
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGColorSpaceRef colSp = CGColorSpaceCreateDeviceRGB();
CGGradientRef gradient = CGGradientCreateWithColors(colSp, (__bridge CFArrayRef)[NSArray arrayWithObjects:(id)[[UIColor colorWithRed:0 green:0 blue:0 alpha:0] CGColor], (id)[[UIColor colorWithRed:0 green:0 blue:0 alpha:0.5] CGColor], nil], 0);
CGContextDrawRadialGradient(context, gradient, self.center, 0, self.center, self.frame.size.height+self.frame.size.height/4, 0);
CGColorSpaceRelease(colSp);
CGGradientRelease(gradient);
}
Ajuste los valores a su gusto.
Agrégalo a cualquier vista que tengas. Et voila. Un buen efecto de viñeta.
¡Me lo he preguntado también! La mayoría de las aplicaciones que muestran alertas personalizadas o iconos de HUD simplemente golpean una superposición negra transparente sólida que se ve realmente mal. – BoltClock
Probablemente puedas hacer esto usando un recuadro box-shadow, soy un desarrollador web, así que eso es todo lo que puedo decir –
@James Kyle: No es un sitio web. Es una aplicación. – JoJo