我从一条直线开始,我希望用户能够触摸并拖动该线,使其弯曲。实际上,他们有能力将线条操纵成波浪形状。我不确定从技术上实现这一目标的最简单方法。
我首先创建了三次曲线的 UIBezierPaths 数组,目的是操纵控制点 - 但似乎一旦绘制了 UIBezierPaths 的控制点就不可能更改它们?
任何有关最简单技术方法的建议表示赞赏。
您可以在drawRect中使用变量作为控制点绘制一条quadCurve(一个控制点贝塞尔曲线),然后在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);
}
如果您有多个控制点,则在 TouchMoved 方法中需要一些视觉元素和额外的逻辑...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)