1

考虑2个视图;不透明(灰色)的一个覆盖有图形的那个。我想获得一种效果,例如,如果橡皮擦以一定的速度沿着路径滑动,并将不透明的颜色擦除为透明,从而露出底层图形视图(见图)。

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

我在 CoreGraphics 和 CoreAnimation 方面从来没有任何严肃的经验,阅读这些文档可能会让菜鸟感到困惑。所以我问是否有人可以轻推我,阅读什么以及在哪里挖掘。任何帮助表示赞赏。

在此处输入图像描述

4

2 回答 2

3

最简单的解决方案是改变你的想法。不要想象擦除灰色以显示图像。想象在灰色之上绘制图像。

这样做的方法是将灰色视图放在图像视图后面,并使用 aCAShapeLayer作为图像视图的图层蒙版。将您的“橡皮擦”路径设置为形状图层的path. 将形状图层设置为lineWidth您喜欢的任何宽度。将其设置fillColor[UIColor whiteColor].CGColor

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

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

于 2013-06-30T20:38:51.177 回答
2

只需使用 [UIColor clearColor] 在灰色视图上绘制;无论在哪里出现这样的透明颜色,它都会显示底层视图。

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

于 2013-06-30T17:04:16.217 回答