【问题标题】:Core Animation: Do an animation only on a specified-portion of a layer (iOS)核心动画:仅在图层的指定部分执行动画(iOS)
【发布时间】:2012-07-31 15:38:50
【问题描述】:

我非常绝望地在这里寻找一种将动画添加到CALayer 的方法,但使其仅适用于图层的一部分。或者,如果有可能的话。

我正在尝试为文本的一部分设置动画(当前使用UILabel),但保持其余部分不变。

这是一个很好的例子:

一个计数器,当您添加/删除一个计数时,只有一位数会发生变化。

谢谢

编辑 1:

我正在尝试编辑文本 /part/ 的位置。

【问题讨论】:

  • 你想做什么?为部分文本的变换/alpha/位置设置动画?

标签: ios animation core-animation calayer


【解决方案1】:

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

如果您想为图层/视图的一部分设置动画,则无需将其切成小块并仅为您要更改的部分设置动画。

一个例外是您可以为 CAShapeLayer 的路径设置动画。只要路径保持相同的结构(控制点的数量/类型),路径的变化就会被动画化。

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

还可以对图层蒙版进行动画更改。有了它,您可以显示或隐藏图层的一部分,这可以为您提供类似于为图层的一部分设置动画的效果。例如,您可以使图层的中间部分逐渐变透明。

【讨论】:

  • 感谢邓肯的意见!因此,如果我正确理解您的陈述,我应该在需要修改的部分添加一个掩码并从那里开始工作?我将如何做到这一点?
  • 创建一个与要遮罩的图层大小相同的新图层。将其添加为要修改的图层的蒙版。遮罩层的 Alpha 通道决定了该层的哪些部分被显示。 (在蒙版不透明的地方,您的图层显示,在透明的地方,图层被隐藏。)您可以在蒙版图层中安装 CGImage,或者将蒙版图层设置为 CAShapeLayer 并在形状图层中安装 CGPath。顺便说一句,接受我的答案并投票如何?
  • 再次感谢邓肯。不用担心,我正在等待您对 +1 的回复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多