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