我正在尝试绘制一些与线条相连的点。点由“核”组成,周围有轨道区域。
当我尝试移动那些给我扭曲线条的点时出现问题:
在我的drawRect:
方法中,我迭代一组创建的点,并使用lineToPoint:
方法绘制贝塞尔曲线路径。
Dot *prevDot = nil;
NSBezierPath *line = [NSBezierPath bezierPath];
for (Dot *dot in _dots) {
if (!prevDot) {
[line moveToPoint:dot.position];
} else {
[line lineToPoint:dot.position];
}
prevDot = dot;
}
[line stroke];
我的问题是,一旦移动其中一个点,我应该使用什么技术来实现点之间的简洁线更新?
答案 0 :(得分:3)
您的绘图代码是正确的。但是,必须在更改时更新视图的大部分。看起来你只是更新移动的点,而不是线。一个简单的解决方法是致电:
[myView setNeedsDisplay:YES];
每当你改变点的位置。这将重绘整个视图。您可以使用其他方法更有选择性地仅在更改视图的位置更新视图,这可以为您提供更好的性能。
通常,您可以在从数据类发送的NSNotification
调用的方法中调用此方法。