Старая линия исчезает, когда я рисую новую линию - PullRequest
0 голосов
/ 28 марта 2012

Я новичок в программировании на Objective-C.

Моя проблема связана с рисованием линий с помощью штрихов.

Мой код такой:

- (void)drawRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetShouldAntialias(context, YES);

    CGContextSetLineWidth(context, 7.0f);

    CGContextSetRGBStrokeColor(context, 0.7, 0.7, 0.7, 1.0);

    CGContextMoveToPoint(context, self.touchedPoint2.x, self.touchedPoint2.y);

    CGContextAddLineToPoint(context, self.touchedPoint.x, self.touchedPoint.y); 

    CGContextDrawPath(context,kCGPathFillStroke);
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    self.touchedPoint = [[touches anyObject] locationInView:self];

    [self setNeedsDisplay];
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
   self.touchedPoint2 = [[touches anyObject] locationInView:self];
}

1 Ответ

1 голос
/ 28 марта 2012

Вот как drawRect: должен работать.

Вы должны нарисовать все в буфер за пределами экрана (например, CGImage или CGLayer), а затем использовать drawRect: только для рисования буфера.

Рассмотрите также вопрос , в котором перечислены другие возможности.

...