Cómo borrar parte de una imagen cuando el usuario la toca
Mi objetivo general es tener un campo gris sobre una imagen, y luego, cuando el usuario frota ese campo gris, revela la imagen debajo. Básicamente como una tarjeta de lotería. He realizado muchas búsquedas en los documentos, así como en este sitio, pero no puedo encontrar la solución.
Lo siguiente es solo una prueba de concepto para probar "borrar" una imagen en función de dónde toca el usuario, pero no está funcionando. :(
Tengo una UIView que detecta toques, luego envía las coordenadas del movimiento al UIViewController que recorta la imagen en un UIImageView haciendo lo siguiente:
- (void) moveDetectedFrom:(CGPoint) from to:(CGPoint) to
{
UIImage* image = bkgdImageView.image;
CGSize s = image.size;
UIGraphicsBeginImageContext(s);
CGContextRef g = UIGraphicsGetCurrentContext();
CGContextMoveToPoint(g, from.x, from.y);
CGContextAddLineToPoint(g, to.x, to.y);
CGContextClosePath(g);
CGContextAddRect(g, CGRectMake(0, 0, s.width, s.height));
CGContextEOClip(g);
[image drawAtPoint:CGPointZero];
bkgdImageView.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[bkgdImageView setNeedsDisplay];
}
El problema es que los toques se envían a este método muy bien, pero no sucede nada en el original.
¿Estoy haciendo la ruta del clip incorrectamente? ¿O?
No estoy seguro ... así que cualquier ayuda que pueda tener sería muy apreciada.
Gracias de antemano, Joel