问题标签 [caanimation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1251 浏览

iphone - iPhone:在两个不同的图层上同步动画

我需要在两个不同的图层上同步路径动画(一个用作另一个图层的蒙版,另一个显示跟随路径的图形元素,即绘制蒙版)。如果我只是对它们进行相同的设置,它们就永远不会做同样的事情。目前,我正在使用带有路径(用于图形元素)和 CABasicAnimation 的 CAKeyframeAnimation,其中我将同一路径的“strokeEnd”动画从 0.0 到 1.0(用于遮罩)。

我猜动画组在这里不起作用,因为这意味着我将组应用到遮罩层,这将隐藏图形元素。

0 投票
3 回答
1101 浏览

iphone - 两个 UILabel 之间的交叉淡入淡出

假设我有两个UILabels (labelOnelabelTwo),我需要在两个标签之间交叉淡入淡出。实现这种效果的最佳方法是什么?

我尝试过使用[UIView beginAnimations:@"crossFade" context:nil];etc. 淡出labelOne然后淡入,labelTwo但是当两个标签的不透明度都较低并且您可以看穿两者时,会有相当明显的差距。我需要一个干净的交叉淡入淡出效果来代替。我有一种需要使用的感觉,CABasicAnimation但我希望得到一些指导。提前致谢!

0 投票
2 回答
934 浏览

cocoa - 如何永久地将 CALayer 旋转到其最终位置?

我正在尝试将 CALayer 旋转到特定角度,但是,一旦动画完成,图层就会跳回其原始位置。我将如何正确旋转图层以使其保持在最终目的地?

这是我正在使用的代码

有什么建议么?谢谢你。

0 投票
4 回答
3716 浏览

ios - iOS:我应该为动画添加 UIViews 还是 CALayers?

假设我想将 50 张图像添加到视图中,以便为它们设置动画。假设我打算使用核心动画(例如,CABasicAnimation)而不是“UIView”动画。

我最好通过添加 50 个子视图或 50 个子层来实现这一点吗?这有什么不同吗?

谢谢。

0 投票
1 回答
149 浏览

iphone - 这段代码在objective-c中是什么意思?

^{}是什么意思?为什么使用这个符号。

0 投票
1 回答
5291 浏览

iphone - 在 UIView 中将背景颜色从一种颜色淡化为另一种颜色

如何在 UIView 中从一种背景颜色淡化为另一种颜色?

在 javascript (jQuery) 中,可以通过执行以下操作来完成:
$('body').animate({ backgroundColor: "#ff00ff"});

如果我将颜色转换为 HSV 会更容易吗?

编辑:尝试使用 CABasicAnimation 进行此操作,但由于未知原因它会闪烁白色。:/

然后我试图找到另一种方法来做到这一点,并偶然发现了“隐式动画”。下面的作品有一个很好的淡入淡出:

感谢 StackOverflow,帮助每个人学习更多。:)

0 投票
2 回答
1869 浏览

serialization - 依次组合多个 CAAnimation

我正在阅读有关 CATransactions 的信息,然后认为这可能有助于解决我的问题。

这是我不想做的:我在同一层中有 3 个动画,它们都有自己的持续时间。我使用带有 CGMutablePathRef 的 CAKeyframeAnimation 创建动画。

比如说:

  • anim1 -> 持续时间 5s
  • anim2 -> 3s
  • anim3 -> 10s

现在我想按顺序对它们进行序列化。我尝试使用 CAAnimationGroup 但动画同时运行。我读到了 CATransaction,这是一个可能的解决方案吗?你能给我举个小例子吗?

感谢帮助 !

0 投票
0 回答
321 浏览

iphone - UIScrollView 内容沿路径跟踪 CAKeyFrameAnimation

在我的应用程序中,我有一个全屏 UIScrollView,其中的内容是一个 UIImageView,其中包含一个大约 2000 像素正方形的地图图像(即比 UIScrollView 大)。

目前,我在地图上绘制了一条路径,并使用 CAKeyFrameAnimation 沿着它制作了一个“信标”图像,效果很好。

我想做的是使 UIScrollView 内容与动画一起移动,以使信标图像保持在屏幕的中心(给用户一种沿着路径跟踪的印象)。

关于我如何实现这一目标的任何建议?

0 投票
1 回答
1840 浏览

calayer - 替代使用 CABasicAnimation 回调?

除了标准的“animationDidStart:”/“animationDidStop:”方法之外,CAAnimation 不提供分配回调函数的机制。

我有一个自定义 UIControl,它使用了 2 个重叠的 CALayers。这种控制的目的类似于老式的声纳。顶层的内容包含一个不断旋转的图像(将此层称为“魔杖”)。在该层之下是一个“spriteControl”层,当魔杖经过它们时会呈现光点。

blips 表示的对象由 spriteControl 预取并组织成不可见的 CAShapeLayers。我正在使用 CABasicAnimation 一次将魔杖旋转 10 度,然后利用“animationDidStop:”方法调用 spriteControl 上的一个方法,该方法采用魔杖层的当前旋转值(又名标题)并从1.0 到 0.0 用于模拟闪烁和淡出效果。最后,该过程无限期地重新开始。

虽然这种使用 CAAnimation 回调的方法确保了魔杖到达“ping”位置(即 10 度、20 度、270 度等)的时间始终与另一层中光点的照明一致,但存在停止的问题,重新计算,每 10 度启动一次动画。

我可以生成一个 NSTimer 来触发一个方法,该方法查询魔杖表示层的角度以获取航向值。然而,这使得保持魔杖和 blip 突出显示同步变得更加困难,和/或导致一些被完全跳过。这种方法在这里进行了一些讨论:如何在 CABasicAnimation 动画时回调?

所以我的问题是,在不使用 OpenGL ES 重新实现控件的情况下,我是否可以做任何事情来提高魔杖层旋转的性能。(我意识到这在 OpenGL 环境中很容易解决,但是,在这里使用它需要进行大量的重新设计,这根本不值得。)虽然性能问题很小,但我无法摆脱这种感觉我可以做一些简单而明显的事情,这将允许魔杖无限期地动画,而不会暂停在两者之间执行昂贵的旋转计算。

这是一些代码:

0 投票
1 回答
2287 浏览

iphone - Stop CABasicAnimation from being removed after completion

Hey, I have this code snippet (duration is .5, amount is 1.5)

However when this is played, the UIView grows properly, but then snaps back to its starting value. I thought the "removedOnCompletion" was supposed to prevent this?