2012-07-31 53 views
1

我非常绝望,在此寻找将动画添加到CALayer的方法,但仅使其适用于图层的一部分。或者如果这甚至是可能的。核心动画:仅对图层的指定部分(iOS)执行动画

我正在尝试对文本的一部分进行动画制作(目前使用的是UILabel),但保持原样。

这里有一个很好的例子:

一个计数器,当您添加/删除计数只有一个数字的变化。

感谢

编辑1:

我想编辑的/零件/文本位置。

+0

你想做什么?为文本的一部分变换/ alpha /位置设置动画效果? – 2012-07-31 15:40:57

回答

2

你描述的是不可能的。核心动画适用于整个图层。 UIView动画适用于整个视图。

如果您想为图层/视图的一部分制作动画,您不需要将其切成片段,只需要为要更改的部分制作动画。

这是一个例外,你可以动画CAShapeLayer的路径。只要路径保持相同的结构(控制点的数量/类型),那么对路径的改变就会变成动画。

如果您有使用路径定义文本的形状图层,并且可以设计一种方法来转换路径,同时保持相同数量和类型的控制点,则可以使形状更改的一部分。

也可以为层的蒙版设置动画变化。有了这个,你可以显示或隐藏图层的一部分,这可以给你一个效果,如动画图层的一部分。例如,您可以将图层的中间部分淡入淡出。

+0

感谢邓肯的输入! 因此,如果我正确理解你的陈述,我应该添加一个掩码到需要修改的部分,并从那里开始工作? 我该怎么做到这一点? – G33kz0r 2012-07-31 19:59:51

+1

创建一个与您要遮罩的图层大小相同的新图层。将其添加为要修改的图层的蒙版。遮罩层的阿尔法通道决定了图层的哪些部分被显示。 (当遮罩是不透明的,图层显示,以及它透明的地方,图层是隐藏的。)您可以在遮罩层中安装CGImage,或者将遮罩层设为CAShapeLayer并在形状图层中安装CGPath。顺便说一句,接受我的答案并提高它的投票呢? – 2012-07-31 20:28:25

+0

再次感谢邓肯。不用担心,我正在等待你对+1的回应。 – G33kz0r 2012-07-31 21:21:05