Open FengDeng opened 8 years ago
嗯,的确是这样 我加入了画笔和颜色。但是问题出现在,很多个CAShapeLayer,我不知道橡皮擦怎么加。如果用self.path.strokeWithBlendMode(CGBlendMode.Clear, alpha: 1.0),则无法擦掉另一CAShapeLayer的。不知道楼主有什么办法吗?
实际上橡皮擦也是绘制出的形状,只不过它的颜色与背景一样,并且它也可以回滚和重做。这样实际上就是覆盖了之前图层,而不是擦除。对吧?
嗯 这是没有办法的办法了。 如果这样做的话,那画布就不能有背景图片了。。。。。
可以存在背景图片,用你的背景图生成一个颜色,然后用一个使用这个颜色的layer做为橡皮。[[UIColor alloc]initWithPatternImage:],注意背景图片的CTM翻转。
要是在有背景图片的情况下,再插入图片在背景图片上面 这时橡皮擦怎么去实现?
如果插入的图片大于等于背景图,直接用插入的图当橡皮擦颜色。如果插入的图片比背景图小,将背景图和插入的图片从新截图出一个新的融合背景来作为橡皮擦颜色。
可以参考 #3 的思路保存位图。
"注意背景图片的CTM翻转" 能简单提一下具体如何翻转么
#3这个保存图片的不适合我们业务
你们好 怎样实现橡皮擦功能啊
画板可以绘制多个线条,所以我很显然的用了多个CAShapeLayer,并且我们的画板是支持回滚和重做的,这些功能可能更加需要依赖多个线形图层的支持。如果后面加入画笔功能,可以画不同颜色、形状,那么多个图层也是唯一的选择。