我的应用程序的iOS绘制功能

我的应用程序的iOS绘制功能,ios,objective-c,Ios,Objective C,我正在尝试将绘图功能添加到我的应用程序中。我有两种观点。。。下面的一张是一张照片,上面的第二张是我想画的 - (void)singleTapGestureCaptured:(UITapGestureRecognizer *)gesture { UIView *tappedView = [gesture.view hitTest:[gesture locationInView:gesture.view] withEvent:nil]; CGPoint currentPoint =

我正在尝试将绘图功能添加到我的应用程序中。我有两种观点。。。下面的一张是一张照片,上面的第二张是我想画的

- (void)singleTapGestureCaptured:(UITapGestureRecognizer *)gesture
{
    UIView *tappedView = [gesture.view hitTest:[gesture locationInView:gesture.view] withEvent:nil];

    CGPoint currentPoint = [gesture locationInView:_paintOverlay];

    UIGraphicsBeginImageContext(_paintOverlay.frame.size);
    [_paintOverlay.image drawInRect:CGRectMake(0, 0, _paintOverlay.frame.size.width, _paintOverlay.frame.size.height)];
    CGContextMoveToPoint(UIGraphicsGetCurrentContext(), 5, 5);
    CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y);
    CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), brush );
    CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), red, green, blue, 1.0);
    CGContextSetBlendMode(UIGraphicsGetCurrentContext(),kCGBlendModeNormal);

    CGContextStrokePath(UIGraphicsGetCurrentContext());
   _paintOverlay.image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();


    NSLog(@"Touch event on view: %@",[tappedView class]);
}

这根本不起作用。我找不到任何教程来帮助我解决这个问题,我找到的那本(我从那里得到这段代码)不太容易理解

您的代码(比如它本身)运行得很好。我没有
图像
,所以我省略了它,但通过为
画笔
等提供值,我发现点击视图会出现一条线:

这是一种糟糕的作画方式(轻敲作画?只从一个点画线???),但它确实画线


但是,我很自然地正确配置了轻触手势识别器和视图。你没说你做了什么,谁知道呢?您是否将轻拍手势识别器与其动作处理程序挂钩?你把它添加到视图中了吗?您是否记得打开视图的
userInteractionEnabled
?你的手势是不是敲了一下?很多事情都会出错;您需要调试,查看发生了什么,并告诉我们更多信息。

尝试使用触摸方法而不是点击手势,因为可以移动手指来画画,触摸将很好地实现。
参考样本:

当然,你很难指望用水龙头来绘画。这对我来说是一个练习吗?在任何情况下,请解释“不起作用”的含义。你希望得到什么,实际发生了什么?不工作意味着没有在UIImageView上进行绘制。我希望创建一个基本的绘画应用程序,用户点击移动手指,然后绘制相应的绘画;事实上,它会拒绝这一点,因为它根本不是一个水龙头。所以问题可能是你做出了错误的姿态。要被轻触手势识别器识别,您的手势需要是简单的轻触!这就是为什么它被称为轻拍手势识别器的原因。我想轻拍不是一个好办法。我不知道使用什么手势来使用轻敲滑动提升手指。。。。你能告诉我如何修改我的代码以适应这种情况吗?当然,对于你用来提供画笔和省略图像的mod来说,这太宽泛了,这将是一个完全不同的问题(或者至少需要你进行一点思考或研究)。我回答了这个问题。你声称你的代码不起作用。我通过演示正确地反驳了这一点。你能给我看一下你最终使用的代码吗?我告诉过你:这正是你的代码,只是我放了一些数字,其中你只显示变量的名称(
画笔
红色
绿色
蓝色
).我无法复制你的屏幕截图。你能把代码粘贴给我吗?