问题标签 [cabasicanimation]

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 投票
3 回答
1101 浏览

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

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

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

0 投票
2 回答
934 浏览

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

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

这是我正在使用的代码

有什么建议么?谢谢你。

0 投票
1 回答
5291 浏览

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

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

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

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

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

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

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

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?

0 投票
2 回答
23369 浏览

iphone - 我如何知道 CABasicAnimation keyPath 中的值

我发现一些这样的代码:

据我所知, keyPath 是一个链式方法调用。CALayer 的“transform.scale”是 aLayer.transform.scale。“transform”是 CALayer 的属性,“scale”是 transform 的“属性”。但是 CALayer 中的属性变换是 CATransform3D。

CATransform3D 中没有名为“scale”或“rotation”的属性。

我的问题是: keyPath 如何识别“缩放”和“旋转”?

0 投票
3 回答
838 浏览

iphone - iOS 设备应用程序,如动画

谁能指导我如何实现ios应用动画?

需要什么样的视图控制器、对象和实现?

谢谢

0 投票
1 回答
540 浏览

iphone - Cocoa iPhone SDK 开发 - 如果 UIImageView 附加了 CABasicAnimation,则 touchesBegan 方法不起作用

我创建了一个派生自 UIImageView 的类(类名 Customer)。在这个 Customer 类中,我实现了方法 "touchesBegan" 。

此外,我将 CABasicAnimation 应用于 Customer 类的层。(动画只是移动图像视图。这是必要的,因为我想跟踪 animationDidStop 事件)。

问题是当我触摸图像视图的当前位置时,touchesBegan 不起作用。它仅在我触摸原始框架(创建它的位置)时才起作用。

我的建议是 touchesBegan 不是在presentationLayer上应用,而是在原始frame上应用。

你有解决这个问题的方法吗??我真的很想从 Customer 类中解决这个问题,而不是从主 UIViewController 解决。

非常感谢,沙哈尔。

0 投票
2 回答
816 浏览

objective-c - 在任何时间点获取 CABasicAnimation 中扩展圆圈的大小

我想知道如何在动画期间的任何时间点获得扩张圈动画的直径(或半径)。我也会在获得大小后立即停止动画,但我认为我无法停止并将其从图层中移除,直到获得圆圈的大小。

有关如何实现扩展圆圈动画的示例,它是iPhone Quartz2D 渲染扩展圆圈addGrowingCircleAtPoint:(CGPoint)point问题答案中方法中显示的实现的变体。

我试图检查图层、动画等的各种值,但似乎找不到任何东西。我认为更糟糕的情况是,我可以尝试通过将当前时间放入其动画中来做出最佳猜测,并根据其往返大小状态使用它来确定它“应该”在哪里。这似乎有点矫枉过正,因为我认为这是一个在我可以轻松获得的地方增加的值。

更新:

我已经在表示层上尝试了几个属性,包括似乎永远不会改变的变换,所有值总是相同的,无论检查时圆圈的大小如何。

0 投票
1 回答
400 浏览

ios - 为 CABasicAnimation 应用速度和旋转次数

我试图模仿旋转可乐应用程序中瓶子的旋转和Roambie 应用程序中的饼图。. 我想根据用户在该视图上的触摸和滑动来旋转视图。

我目前在做什么:

  1. 获取触摸开始和结束的时间。(并滑动)
  2. 获取触摸或滑动的所有坐标并找到总距离。

我相信可乐应用程序的旋转会根据滑动或触摸所花费的距离和时间为瓶子设置动画。但我不确定他们是怎么做到的。

我希望视图最初旋转得更快,然后减速并最终停止。

请分享您对如何解决此问题的想法?