Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用按钮单击删除图形?_Ios - Fatal编程技术网

Ios 如何使用按钮单击删除图形?

Ios 如何使用按钮单击删除图形?,ios,Ios,我在IOS中使用绘图应用程序时遇到一些问题。我在一些教程的帮助下创建了徒手画。但我发现擦除这幅画有一些困难。在我的应用程序中,我有一个带橡皮擦的按钮作为背景图像。单击橡皮擦按钮后,当我在图形上滑动时,无论我在何处滑动,它都会擦除图形。有人能帮我做这件事吗。 提前谢谢 下面是我的代码: @implementation LinearInterpView { UIBezierPath *path; } - (id)initWithFrame:(CGRect)frame { self

我在IOS中使用绘图应用程序时遇到一些问题。我在一些教程的帮助下创建了徒手画。但我发现擦除这幅画有一些困难。在我的应用程序中,我有一个带橡皮擦的按钮作为背景图像。单击橡皮擦按钮后,当我在图形上滑动时,无论我在何处滑动,它都会擦除图形。有人能帮我做这件事吗。 提前谢谢

下面是我的代码:

@implementation LinearInterpView
{
    UIBezierPath *path;
}

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
    }
    return self;
}

-(id)initWithCoder:(NSCoder *)aDecoder {

    if(self = [super initWithCoder:aDecoder]) {
        [self setMultipleTouchEnabled:YES];
        [self setBackgroundColor:[UIColor whiteColor]];
        path=[UIBezierPath bezierPath];
        [path setLineWidth:2.0];
    }
    return self;
}

-(void)drawRect:(CGRect)rect{
    [[UIColor blackColor] setStroke];
    [path stroke];
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    UITouch *touch=[touches anyObject];
    CGPoint p=[touch locationInView:self];
    [path moveToPoint:p];
}

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
    UITouch *touch=[touches anyObject];
    CGPoint p=[touch locationInView:self];
    [path addLineToPoint:p];
    [self setNeedsDisplay];
}

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    [self touchesMoved:touches withEvent:event];
}

-(void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event{

    [self touchesEnded:touches withEvent:event];
}

// This is the button action to erase the drawing.
- (IBAction)erase:(id)sender {
    CGContextRef cgref=UIGraphicsGetCurrentContext();
    CGContextSetBlendMode(cgref, kCGBlendModeClear);
}

请澄清我所犯的错误。

因此,通过绘制,你的意思是你已经在屏幕上绘制了线条,比如说,使用某种颜色,你可以通过设置白色和alpha 1,使白色线条替换现有的彩色线条来做同样的事情。更好的。这似乎也很重要。

为什么不在erasor按钮中实现与在draw按钮中相同的逻辑呢。只需将橡皮擦中笔划的默认颜色设置为白色或背景的任何颜色。

首先,您的逻辑应该是在ImageView上创建一个图层

然后你可以在那个图层上画画,然后通过白色来擦除

它将看起来像擦除,您的视图将看起来像根据要求


那肯定行。

尝试在iOS中删除图形:

- (IBAction)eraserPressed:(id)sender { 
    red = 255.0/255.0;
    green = 255.0/255.0;
    blue = 255.0/255.0;
    opacity = 1.0;
}

是的,两天前我刚刚通过了那个教程。但我没有尝试。它有很多功能。有点困惑。你能告诉我们到目前为止你做了什么吗,我们会更好地帮助你。先生,我已经用我的代码编辑了我的问题。请澄清我的错误。如果我想删除我的画怎么办?好吧,让我们在这里尝试一个小修复,为橡皮擦设置一个布尔值,默认设置为“否”,然后单击“橡皮擦”将其设置为“是”。在drawRect中使用此选项如果为“是”,则颜色应为白色而不是黑色,否则可以为您想要的任何其他颜色。当然。。我要试试这个主意。。谢谢Siru你可以是post代码片段,我可以帮你检查一下吗?drawRect在你每次进行笔划时都会被调用,所以在你的drawRect中,你每次调用时都将笔划颜色设置为黑色,因此我想问你,当你按下擦除按钮并尝试擦除时,你是否会得到黑色笔划?是的,当然,笔划是黑色的。我也有一个疑问,如果我想擦除意味着我需要调用drawRect方法。如果是这样的话,在不影响黑色图形的情况下,代码中要做哪些更改,同时也会擦除线条。好的,简单的方法是使用bool值,在擦除按钮操作中,设置bool,并在draw rect方法中根据bool值将笔划的颜色设置为黑色或白色。谢谢先生。我试过这个主意。但也有一个问题,如果我试图擦除黑线图,黑线会变成褪色的彩色线。是的,会的。进一步的过程是将其保存为文本,并在tableview上显示为数据。@Vidhya我也停留在这里,如果你这样做了,请帮助