Wie lösche ich einen Teil eines Bildes, wenn der Benutzer es berührt?
Mein großes Ziel ist es, ein graues Feld über einem Bild zu haben. Wenn der Benutzer dann über dieses graue Feld reibt, wird das Bild darunter angezeigt. Grundsätzlich wie eine Lotterie-Rubbelkarte. Ich habe ein paar Mal in den Dokumenten und auf dieser Website gesucht, kann aber die Lösung nicht finden.
Das Folgende ist nur ein Konzeptnachweis, um das "Löschen" eines Bildes zu testen, basierend darauf, wo der Benutzer es berührt, aber es funktioniert nicht. :
Ich habe ein UIView, das Berührungen erkennt und anschließend die Koordinaten des Verschiebens an den UIViewController sendet, der das Bild in einer UIImageView auf folgende Weise abschneidet:
- (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];
}
Das Problem ist, dass die Berührungen zu dieser Methode ganz gut gesendet werden, aber auf dem Original passiert nichts.
Mache ich den Clip-Pfad falsch? Oder
Nicht wirklich sicher ... also wäre jede Hilfe, die du hast, sehr dankbar.
ielen Dank im Voraus, Jo