У меня есть проблемы с графическим приложением в 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);
}
Пожалуйста, снимите меня, какая ошибка, которую я сделал.
DrawRect вызывается каждый раз, когда вы делаете ход, так что в вашем DrawRect вы устанавливаете цвет обводки как черный каждый раз он будет вызван, поэтому я хочу спросите вас, что, когда вы нажимаете кнопку стирания и пытаетесь стереть, вы получаете черный ход или нет? – azmuhak
Да, абсолютно штрихи черные в цвете. У меня тоже есть сомнения. Если я хочу стереть, мне нужно вызвать метод drawRect. Это так, каковы изменения, которые необходимо внести в код, не затрагивая чертежи черного цвета, а также стирает линии. –
ну, простой способ - использовать значение bool и в действии кнопки стирания, установить метод bool и draw draw, чтобы цвет вашего штриха был либо черным, либо белым, в зависимости от значения bool. – azmuhak