Как заставить метод Drawing в классе View работать, используя CGContextRef? - PullRequest
0 голосов
/ 27 марта 2010

У меня есть эти 2 метода в классе View. метод drawRect всегда вызывается при инициализации представления. Но я не могу заставить работать метод drawLine . Он ничего не делает, когда его вызывают. Я должен иметь дело с cgimagecontext или что-то в этом роде? пожалуйста помогите !!

- (void)drawRect:(CGRect)rect {
    // Drawing code
    // Drawing code
    CGContextRef contextRef = UIGraphicsGetCurrentContext();
    //CGContextSetRGBFillColor(contextRef, 0, 0, 255, 1);
    CGContextSetRGBStrokeColor(contextRef, 0, 0, 0, 1);
    CGContextSetLineWidth(contextRef, 5.0);
    CGContextBeginPath(contextRef);
    CGContextMoveToPoint(contextRef, 0, 0);
    CGContextAddLineToPoint(contextRef, 320, 480);
    CGContextStrokePath(contextRef);
}

    -(void)drawLine:(CGPoint)from to:(CGPoint) to {
    // Drawing code
    CGContextRef contextRef = UIGraphicsGetCurrentContext();
    //CGContextSetRGBFillColor(contextRef, 0, 0, 255, 1);
    CGContextSetRGBStrokeColor(contextRef, 0, 128, 0, 1);
    CGContextSetLineWidth(contextRef, 5.0);
    CGContextBeginPath(contextRef);
    CGContextMoveToPoint(contextRef, 0, 0);
    CGContextAddLineToPoint(contextRef, 320, 50);
    CGContextStrokePath(contextRef);

}

Ответы [ 2 ]

3 голосов
/ 28 марта 2010

Вы звоните -drawLine из -drawRect? Вы должны сделать все рисование в виде внутри вашего метода drawRect. Если вы звоните -drawLine откуда-то еще, он не будет работать.

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

Вы можете сделать рисование только в Drawrect. Если вы хотите рисовать пользовательские линии с помощью метода drawLine, замените жестко закодированные точки в drawrect переменными. Затем вы можете установить эти переменные в вашем методе drawLine и, наконец, вызвать [self setNeedsDisplay].

...