在iOS中以编程方式绘制多条线

在iOS中以编程方式绘制多条线,ios,lines,Ios,Lines,可能重复: 经过多次浏览,我还没有找到相关的答案。我希望在运行时以编程方式在iOS UIView上绘制多条线,即允许用户通过在屏幕上拖动手指来绘制线。然而,问题是当我画第二条线时,第一条线被删除了。我希望第一条线保持在它的坐标中,用户可以通过在屏幕上拖动来绘制第二条直线。随函附上代码: CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetStrokeColorWithColor

可能重复:

经过多次浏览,我还没有找到相关的答案。我希望在运行时以编程方式在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);

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

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

--


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

是的。。在某种程度上但这主要是为了不让drawRect保存旧内容