【发布时间】:2012-04-08 19:48:01
【问题描述】:
我将 UIView 子类化并覆盖了 touchesBegan、touchesMoved、touchesEnded 和 drawRect 方法,以创建一个允许用户通过触摸屏幕进行绘图的应用。我正在使用 Quartz 2D 库来绘制图纸。
在 touchesBegan、touchesMoved 和 touchesEnded 中,我会跟踪触摸事件的当前和先前位置。每次触摸移动和触摸结束时,我都会使用包含触摸的先前和当前位置的最小矩形调用 setNeedsDisplayInRect,以保留底层绘图。 (我希望所有图纸像图层一样相互叠加。)
我注意到一个奇怪的伪影:当创建一个与另一个绘图重叠的绘图时,Quartz 会重新绘制传递给 setNeedsDisplayInRect 的矩形,但会擦除该矩形下方的所有内容。
我怀疑问题出在混合模式上,但是我尝试了多种不同的混合模式,但似乎都没有效果。
如何绘制保留底层内容的路径?
【问题讨论】:
标签: ios drawing touch quartz-2d