Стирание и восстановление изображения в UIImageView с помощью касания использование coregraphics

Мой вопрос такой же, как упомянутый в здесь. используя два изображения в моем приложении, и все, что мне нужно, это стереть верхнее изображение прикосновением. Затем отмените (если требуется) стертую часть касанием. Я использую следующий код, чтобы стереть верхнее изображение. В этом подходе тоже есть проблема. Это то, что изображения большие, и я использую режим содержимого Aspect Fit для их правильного отображения. Когда я касаюсь экрана, он стирается в углу не затронутого места. Я думаю, что расчет точки касания требует некоторого исправления. Любая помощь будет оценена.

Вторая проблема заключается в том, как восстановить стертую часть касанием?

UIGraphicsBeginImageContext(self.imgTop.image.size);
[self.imgTop.image drawInRect:CGRectMake(0, 0, self.imgTop.image.size.width, self.imgTop.image.size.height)];
self.frame.size.width, self.frame.size.height)];
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); 
GContextSetLineWidth(UIGraphicsGetCurrentContext(), pinSize); 
CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0, 0, 0, 1.0);
CGContextSetBlendMode(UIGraphicsGetCurrentContext(), kCGBlendModeCopy);

CGContextBeginPath(UIGraphicsGetCurrentContext());
CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y);
CGContextStrokePath(UIGraphicsGetCurrentContext());
self.imgTop.contentMode = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

6
задан Community 23 May 2017 в 12:01
поделиться