Erazor对UIView的影响

时间:2013-06-30 16:46:08

标签: ios core-animation core-graphics

考虑2个观点;不透明(灰色)覆盖带有图形的那个。我希望得到一个效果,例如,如果一个橡皮擦沿着具有一定速度的路径滑动,并将不透明的颜色擦除为透明,则揭开底层图形视图(见图像)。

我能想到的唯一方法是拥有相当多的小视图,而不是不透明的视图,并动画aplhas。但这似乎是愚蠢而沉重的解决方案。

我从来没有对CoreGraphics和CoreAnimation有过任何不愉快的经历,阅读那些文档可能会让人觉得混乱。所以即时通讯询问是否有人可以给我一个轻推,阅读什么以及在哪里挖掘。任何帮助表示赞赏。

enter image description here

2 个答案:

答案 0 :(得分:3)

最简单的解决方案是改变你的想法。不要想象擦除灰色以显示图像。想象一下,将图像绘制在灰色顶部。

执行此操作的方法是将灰色视图放在图像视图后面,然后使用CAShapeLayer作为图像视图的图层蒙版。将“橡皮擦”路径设置为形状图层path。将形状图层的lineWidth设置为您喜欢的宽度。将其fillColor设置为[UIColor whiteColor].CGColor

如果你这样做,你会看到路径上的图像和其他地方的灰色。

要为“橡皮擦”的移动设置动画,请在形状图层中添加CABasicAnimation。将形状图层的strokeEnd属性设置为@0.0f@1.0f

答案 1 :(得分:2)

只需使用[UIColor clearColor]绘制灰色视图;无论出现何种透明色,都会显示底层视图。

您必须先将灰色设置为opaque = NO。这不会使灰色视图不可见,这只是iOS的一个提示,它有透明的部分。