iOS上的UIBezierPath操作

我开始用一条直线,我希望用户能够触摸并拖动线,使其曲线。 实际上,他们有能力将线路操纵成波形。 我不确定在技术上实现这个最简单的方法。

我已经开始创build一个三维曲线的UIBezierPaths数组,以便操纵控制点 – 但是看起来,一旦绘制了UIBezierPaths的控制点,就不可能改变它们的控制点了吗?

任何关于最简单的技术方法的build议表示赞赏。

您可以使用variables作为控制点在drawRect中绘制一个quadCurve(一个控制点Bezier曲线),然后如下更新touchesBegan方法中的控制点。 请注意,您需要使用setNeedsDisplay重绘

- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { controlPoint = [[touches anyObject] locationInView:self]; [self setNeedsDisplay]; } - (void)drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor); CGContextSetLineWidth(context, 1.0); CGContextMoveToPoint(context, 0, 320); CGContextAddQuadCurveToPoint(context, controlPoint.x, controlPoint.y, 320, 200); CGContextStrokePath(context); } 

如果你有多个控制点,那么在touchesMoved方法中需要一些视觉元素和额外的逻辑