我从一条直线开始,我希望用户能够触摸并拖动线条以使其弯曲.实际上,他们有能力将线条操纵成波浪形状.我不确定技术上实现这一目标的最简单方法.
我开始创建一个立方曲线的UIBezierPaths数组,目的是操纵控制点 – 但是看起来,一旦绘制出UIBezierPaths的控制点,就不可能改变它们了?
关于最简单的技术方法的任何建议都表示赞赏.
最佳答案 您可以使用变量作为控制点在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方法中需要一些视觉元素和额外的逻辑… e