根据手指路径隐藏/显示UIImage?

时间:2012-10-25 21:00:36

标签: iphone objective-c ios uiimage core-graphics

我希望这是有道理的。我会试着解释一下。

我在屏幕上有一个UIImageView,我想知道如何用手指在“绘图”后取出该区域,并从UImage中删除该部分,或者从选择中创建一个单独的UIImage。

我不是在寻找代码(除非你有=]),只是想知道如何去做。如果你有提示,我将非常感激,谢谢。

5 个答案:

答案 0 :(得分:0)

如果我理解你的问题, 我想我会在UIImageView的顶部添加一个透明的UIView作为子视图。借鉴它。然后,您可以在完成后删除/隐藏子视图。

答案 1 :(得分:0)

您需要使用目标和UIGestureRecognizer之类的操作创建-imageIsPressed,在此-imagePressed方法中,您可以调用某些内容使图像消失。我建议将UIImage放入UIImageView并调用imageview.hidden = YES;隐藏图像,然后将其设置回" NO"一旦它不被手指握住。

答案 2 :(得分:0)

你需要实现捕获用户“选择”区域的东西(可能是创建CGPath。然后你创建一个大小与imageView相同的CALayer。在其中创建,绘制和填充捕获的路径具有一些任意颜色,而其余部分保持透明。最后,将生成的CALayer作为掩码应用于UIImageView:

imageView.layer.mask = maskLayer;

希望能让你开始。

有关如何绘制自定义CALayer的更多信息,请参阅Quartz Programming Guide

答案 3 :(得分:0)

所以基本上你想实现图像的徒手擦除?您将需要使用核心图形和各种CGContext方法(混合模式设置为清除)来实现此目的。有两种方法,但两种方法都是从将图像绘制为drawRect的第一部分开始,然后是

1)将笔划存储在一个数组中,并将所有笔划笔划到图像顶部。

2)在图像上画一个笔划,然后将生成的图像存储到UIImage。使用此UIImage作为您在drawRect中绘制的下一个图像。这个撤消/重做功能很难。

答案 4 :(得分:0)

我最近自己实现了这个并使源可用here。基本上,在设置图形上下文时,我使用了与here描述相同的方法:

CGContextSetBlendMode(UIGraphicsGetCurrentContext(), kCGBlendModeClear);