在iOS中以编程方式绘制多行

时间:2012-12-27 23:31:35

标签: ios lines

  

可能重复:
  How To Draw line on touch event?

经过大量的浏览,我找不到相关的答案。我想在运行时以编程方式在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);

1 个答案:

答案 0 :(得分:1)

在每次调用drawRect时,您都会通过dirtyRect来定义区域,您必须完全绘制,该区域中的旧内容为GONE。默认情况下,当你没有更好的逻辑时,你必须绘制视图中的所有内容 - 所有行!

它不是更新电话,旧的东西不会保留。

-

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