我試圖實現一種方法,繪製一個基於手勢識別的行,但我無法獲得UIBezierPath顯示。我知道手勢識別器正在運行,因爲每次激活該方法時都會打印記錄。同樣讓我困惑的是,我之前繪製的藍線試圖繪製貝塞爾路徑,但貝塞爾路徑卻沒有。即使我手動添加任意點沒有被繪製,比如:UIBezierPath沒有繪製
[myPath addLineToPoint:CGPointMake(50, 50)];
這裏是我的UIView代碼:
- (void)drawRect:(CGRect)rect
{
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSetRGBStrokeColor(ctx, 0, 0, 1.0, 1);
CGContextMoveToPoint(ctx, 0, 150);
CGContextAddLineToPoint(ctx, 480, 150);
CGContextStrokePath(ctx);
[myPath addLineToPoint:CGPointMake(50, 50)];
[myPath stroke];
}
- (IBAction)handlePan:(UIPanGestureRecognizer *) recognizers {
CGPoint translation = [recognizers translationInView:self];
NSLog(@"Logged");
[myPath addLineToPoint:CGPointMake(translation.x, translation.y)];
[self setNeedsDisplay];
}
感謝您的幫助!
你爲什麼要畫與CG和一些與NSBezierPath一些路徑之前調用移動到mypath中呢? myPath定義在哪裏?請包括它的定義,以便我們看看它在做什麼。 – user1118321
謝謝你的迴應!對不起,遺漏了初始值設定項。在 - (id)initWithFrame:(CGRect)框架中,我初始化爲: 'myPath = [[UIBezierPath alloc] init]; [myPath moveToPoint:CGPointMake(0,0)];' – JShaev