考虑2个观点;不透明(灰色)覆盖带有图形的那个。我希望得到一个效果,例如,如果一个橡皮擦沿着具有一定速度的路径滑动,并将不透明的颜色擦除为透明,则揭开底层图形视图(见图像)。
我能想到的唯一方法是拥有相当多的小视图,而不是不透明的视图,并动画aplhas。但这似乎是愚蠢而沉重的解决方案。
我从来没有对CoreGraphics和CoreAnimation有过任何不愉快的经历,阅读那些文档可能会让人觉得混乱。所以即时通讯询问是否有人可以给我一个轻推,阅读什么以及在哪里挖掘。任何帮助表示赞赏。
答案 0 :(得分:3)
最简单的解决方案是改变你的想法。不要想象擦除灰色以显示图像。想象一下,将图像绘制在灰色顶部。
执行此操作的方法是将灰色视图放在图像视图后面,然后使用CAShapeLayer
作为图像视图的图层蒙版。将“橡皮擦”路径设置为形状图层path
。将形状图层的lineWidth
设置为您喜欢的宽度。将其fillColor
设置为[UIColor whiteColor].CGColor
。
如果你这样做,你会看到路径上的图像和其他地方的灰色。
要为“橡皮擦”的移动设置动画,请在形状图层中添加CABasicAnimation
。将形状图层的strokeEnd
属性设置为@0.0f
到@1.0f
。
答案 1 :(得分:2)
只需使用[UIColor clearColor]绘制灰色视图;无论出现何种透明色,都会显示底层视图。
您必须先将灰色设置为opaque = NO。这不会使灰色视图不可见,这只是iOS的一个提示,它有透明的部分。