我有一个 CALayer,它是 ImageView 的子层。这显示了一个图像,用户可以调整大小/旋转等。
我希望能够让用户使用 PanGesture 在图像顶部绘制(擦除图像) - 如果图像是原始大小(用户没有尝试调整大小/旋转),这可以正常工作,但只要用户调整大小/旋转并再次尝试,他/她可以在图像上绘制的线将随图像缩放(即如果用户将图像层的大小减半,则绘制线将减半,如果用户旋转将图像层倾斜 45 度,向上平移将绘制一条对角线)。
我目前正在尝试通过绘制然后使用新创建的 self.image2 设置 layer.contents 来做到这一点(image2Position 是屏幕上图层的当前位置):
UIGraphicsBeginImageContextWithOptions(self.image2.size, NO, 0.0);
[self.image2 drawInRect:CGRectMake(0, 0, self.image2.size.width, self.image2.size.height)];
[eraser drawAtPoint:CGPointAdd2(CGPointAdd(currentPoint, CGPointMake(-center.x, -center.y)), CGPointMake(-self.image2Position.x, -self.image2Position.y)) blendMode:kCGBlendModeDestinationOut alpha:1];
self.image2 = UIGraphicsGetImageFromCurrentImageContext();
无论用户如何旋转/调整图像大小,如何确保用户可以在相同的坐标系中绘制相同大小的线?