如何擦除用 NSBezierPath 绘制的东西?

Posted

技术标签:

【中文标题】如何擦除用 NSBezierPath 绘制的东西?【英文标题】:How to erase something drawn with NSBezierPath? 【发布时间】:2012-01-26 08:42:30 【问题描述】:

我刚刚使用 NSBezierPath 创建了一条路径,并使用 [路径填充] 将其绘制到视图上。我的问题是如何删除我绘制的内容?

一种可能的解决方案是使用背景颜色再次使用 [路径填充],但如果有背景图像而不是简单的背景颜色,这将不起作用。那么有人有什么想法吗?

【问题讨论】:

第二次重绘视图,但这次不要再绘制了 【参考方案1】:

只需从路径数组中删除路径并再次调用drawRect。顺便说一句,我知道你在哪里存储路径、可变数组或字典?

【讨论】:

【参考方案2】:

设置CALayer路径时会显示你创建的路径

view.layer.path = path.CGPath;

清除路径

view.layer.path = nil;

【讨论】:

以上是关于如何擦除用 NSBezierPath 绘制的东西?的主要内容,如果未能解决你的问题,请参考以下文章

NSBezierPath 的 strokeRect: 是不是总是绘制透明矩形? (可可 OSX)

使 NSBezierPath 保持相对于 windowResize 上的 NSView

使用 CGContext 绘制后擦除

以编程方式绘制圆角矩形[重复]

iOS“擦除”绘图与 CAShapeLayer 动画

android中,如何用canvas绘制透明?