UIBezierPath没有绘图

时间:2012-06-13 21:42:46

标签: ios uiview uigesturerecognizer drawrect uibezierpath

我正在尝试实现一种基于手势识别绘制线条的方法,但我无法显示UIBezierPath。我知道手势识别器正在运行,因为每次激活方法时我都会打印日志。让我感到困惑的是,我在绘制BezierPath之前绘制的蓝线显示但是BezierPath没有显示。即使我手动添加任意点,也不会绘制任何内容,例如:

[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];
}

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

你在哪里初始化myPath?确保它已初始化。

就像

一样
CGContextMoveToPoint(ctx, 0, 150);

,你需要在添加行

之前调用move to指向myPath
[myPath moveToPoint:CGPointMake(0,150)];
[myPath addLineToPoint:CGPointMake(50, 50)];