0

可能重复:
如何在触摸事件上画线?

经过大量浏览,我还找不到相关的答案。我想在运行时以编程方式在 iOS UIView 上绘制多条线,即允许用户通过用手指在屏幕上拖动来绘制线。然而,问题是当我画第二条线时,第一条画线被删除了。我希望第一条线保持在其坐标中,用户可以通过在屏幕上拖动来绘制第二条直线。附上代码:

CGContextRef context    = UIGraphicsGetCurrentContext();                
CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);    
CGContextSetLineWidth(context, 2.0);        
CGContextMoveToPoint(context, touchPoint.x,touchPoint.y); 
CGContextAddLineToPoint(context, lastTouchPoint.x, lastTouchPoint.y);
CGContextStrokePath(context);
4

1 回答 1

1

在每次给drawRect您的调用中,都会传递一个dirtyRect定义了您必须完全绘制的区域的区域,该区域中的旧内容已消失。默认情况下,当您没有更好的逻辑时,您必须绘制视图中的所有内容——所有线条!

这不是更新调用,旧的东西不会被保留。

--

您可以按照它们发生的顺序将所有触摸添加到数组中,并在 drawRect 中绘制每一个。

于 2012-12-27T23:41:12.913 回答