在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保存旧内容