Как нарисовать на UIImageView, не затрагивая фоновое изображение? - PullRequest
0 голосов
/ 11 ноября 2011

У меня одно приложение контроллера представления.Он содержит UIImageView и при касании пользователя рисует на экране.Эта часть отлично работает.В представлении загрузил метод viewcontroller Я настроил другое изображение в качестве фонового изображения.И я установил этот фон просмотра изображения как чистый цвет.Теперь, когда я пытаюсь стереть что-то из UIImageView, я также стираю фоновое представление контроллера представления.Как я могу избежать этого?

Вот мой код Чтобы установить фон для viewcontroller в viewDidLoad ()

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bacground.png"]];
image.backgroundColor = [UIColor clearColor];    

Чтобы нарисовать на экране в методе touchesMoved

UIGraphicsBeginImageContext(image.frame.size);
[image.image drawInRect:CGRectMake(0, 0, image.frame.size.width, image.frame.size.height)];
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), lineWidth);
CGContextSetStrokeColorWithColor(UIGraphicsGetCurrentContext(), self.drawcolor.CGColor);
CGContextBeginPath(UIGraphicsGetCurrentContext());
CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y);
CGContextStrokePath(UIGraphicsGetCurrentContext());
image.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

Чтобы стереть, я просто устанавливаю drawcolor на whiteColor.

1 Ответ

0 голосов
/ 11 ноября 2011

Чтобы установить изображение для фона, используйте следующее, а затем попробуйте нарисовать другое изображение на виде

            UIImageView *background = [[UIImageView alloc]initWithImage:[UIImage imageNamed: @"backipad.png"]];
self.view = background;

Попробуйте с выше, я никогда не сталкивался с такой проблемой, но я думаю, что это будет работать для вас .. и

 background.userInteractionEnabled = YES;
...