2010-03-27 48 views
0

我有這2種方法在View類中。當視圖初始化時,drawRect方法總是被調用。但我無法得到drawLine方法的工作。它在被調用時不會執行任何操作。我應該處理cgimagecontext或類似的東西?請幫忙!!如何在View類中使用CGContextRef製作繪圖方法?

- (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); 

} 

回答

3

您是否正在從-drawRect中調用-drawLine?您需要在drawRect方法的視圖中進行所有繪圖。如果你從其他地方調用了-drawLine,它將不起作用。

+0

哦,我明白了,非常感謝! :) – RoundOutTooSoon 2010-03-27 22:10:55

1

您只能繪製成直角。如果要通過drawLine方法繪製自定義線條,請將drawrect中的硬編碼點替換爲變量。然後你可以在你的drawLine方法中設置這些變量,最後調用[self setNeedsDisplay]。

相關問題