Нарисуйте смахивание с помощью UIBezierPath в UIImageView

Я пытаюсь что-то нарисовать в UIImageView. Я могу без проблем рисовать в UIView, используя следующий код:

@implementation DrawView
{
    UIBezierPath *path; 
}

- (id)initWithCoder:(NSCoder *)aDecoder 
{
    if (self = [super initWithCoder:aDecoder])
    {
        [self setMultipleTouchEnabled:NO]; 
        [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]; // (4)
    [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];
}

Это пропускает просмотр изображений. Мне нужно обратное. Я хочу нарисовать uiimageview и пропустить uiview. Как я могу это сделать? Заранее спасибо..

введите здесь описание изображения


person Tim Tuffley    schedule 26.08.2013    source источник


Ответы (1)


Поверхность рисования должна быть родительской в ​​иерархии этого набора видов. Таким образом, вы можете рисовать на родительском виде, в то время как изображение находится под ним.

-Main View
--Drawing View
---UIImageView
person theprojectabot    schedule 22.11.2013
comment
и если вам нужно, чтобы представление чертежа имело размер представления изображения, просто измените размер его границ/рамки, чтобы он соответствовал его дочернему изображению. - person theprojectabot; 23.11.2013