Como apagar parte de uma imagem à medida que o usuário toca nela
Meu objetivo geral é ter um campo cinza sobre uma imagem e, à medida que o usuário esfrega esse campo cinza, ela revela a imagem abaixo. Basicamente, como um cartão de raspadinha da loteria. Fiz várias pesquisas nos documentos e neste site, mas não consigo encontrar a solução.
A seguir, é apenas uma prova de conceito para testar "apagando" uma imagem com base em onde o usuário toca, mas ela não está funcionando. :(
Eu tenho um UIView que detecta toques e envia as cordas da movimentação para o UIViewController que corta a imagem em um UIImageView, fazendo o seguinte:
- (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];
}
O problema é que os toques são enviados para esse método muito bem, mas nada acontece no original.
Estou fazendo o caminho do clipe incorretamente? Ou?
Não tenho certeza ... então qualquer ajuda que você possa ter seria muito apreciada.
Agradecemos antecipadamente, Joel