经过大量的浏览,我找不到相关的答案。我想在运行时以编程方式在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);
答案 0 :(得分:1)
在每次调用drawRect
时,您都会通过dirtyRect
来定义区域,您必须完全绘制,该区域中的旧内容为GONE。默认情况下,当你没有更好的逻辑时,你必须绘制视图中的所有内容 - 所有行!
它不是更新电话,旧的东西不会保留。
-
您可以按照发生的顺序将所有触摸添加到数组中,并在drawRect中绘制每个触摸。