Как стереть часть изображения, когда пользователь прикасается к ней
Моя большая цель - создать серое поле над изображением, а затем, когда пользователь потирает это серое поле, оно отображает изображение под ним. В основном, как лотерея скретч-карты. Я выполнил кучу поиска по документам, а также по этому сайту, но не могу найти решение.
Следующее является просто доказательством концепции тестирования «стирания» изображения в зависимости от того, где пользователь касается, но оно не работает. :(
У меня есть UIView, который обнаруживает прикосновения, а затем отправляет координаты перемещения в UIViewController, который обрезает изображение в UIImageView, выполнив следующие действия:
- (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];
}
Проблема в том, что штрихи к этому методу отправляются просто отлично, но на оригинале ничего не происходит.
Я делаю путь клипа неправильно? Или же?
Не совсем уверен ... поэтому любая помощь, которую вы можете иметь, будет принята с благодарностью.
Заранее спасибо, Джоэл