问题标签 [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.
iphone - 两个 UILabel 之间的交叉淡入淡出
假设我有两个UILabel
s (labelOne
和labelTwo
),我需要在两个标签之间交叉淡入淡出。实现这种效果的最佳方法是什么?
我尝试过使用[UIView beginAnimations:@"crossFade" context:nil];
etc. 淡出labelOne
然后淡入,labelTwo
但是当两个标签的不透明度都较低并且您可以看穿两者时,会有相当明显的差距。我需要一个干净的交叉淡入淡出效果来代替。我有一种需要使用的感觉,CABasicAnimation
但我希望得到一些指导。提前致谢!
cocoa - 如何永久地将 CALayer 旋转到其最终位置?
我正在尝试将 CALayer 旋转到特定角度,但是,一旦动画完成,图层就会跳回其原始位置。我将如何正确旋转图层以使其保持在最终目的地?
这是我正在使用的代码
有什么建议么?谢谢你。
iphone - 在 UIView 中将背景颜色从一种颜色淡化为另一种颜色
如何在 UIView 中从一种背景颜色淡化为另一种颜色?
在 javascript (jQuery) 中,可以通过执行以下操作来完成:
$('body').animate({ backgroundColor: "#ff00ff"});
如果我将颜色转换为 HSV 会更容易吗?
编辑:尝试使用 CABasicAnimation 进行此操作,但由于未知原因它会闪烁白色。:/
然后我试图找到另一种方法来做到这一点,并偶然发现了“隐式动画”。下面的作品有一个很好的淡入淡出:
感谢 StackOverflow,帮助每个人学习更多。:)
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 环境中很容易解决,但是,在这里使用它需要进行大量的重新设计,这根本不值得。)虽然性能问题很小,但我无法摆脱这种感觉我可以做一些简单而明显的事情,这将允许魔杖无限期地动画,而不会暂停在两者之间执行昂贵的旋转计算。
这是一些代码:
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?
iphone - 我如何知道 CABasicAnimation keyPath 中的值
我发现一些这样的代码:
和
据我所知, keyPath 是一个链式方法调用。CALayer 的“transform.scale”是 aLayer.transform.scale。“transform”是 CALayer 的属性,“scale”是 transform 的“属性”。但是 CALayer 中的属性变换是 CATransform3D。
CATransform3D 中没有名为“scale”或“rotation”的属性。
我的问题是: keyPath 如何识别“缩放”和“旋转”?
iphone - iOS 设备应用程序,如动画
谁能指导我如何实现ios应用动画?
需要什么样的视图控制器、对象和实现?
谢谢
iphone - Cocoa iPhone SDK 开发 - 如果 UIImageView 附加了 CABasicAnimation,则 touchesBegan 方法不起作用
我创建了一个派生自 UIImageView 的类(类名 Customer)。在这个 Customer 类中,我实现了方法 "touchesBegan" 。
此外,我将 CABasicAnimation 应用于 Customer 类的层。(动画只是移动图像视图。这是必要的,因为我想跟踪 animationDidStop 事件)。
问题是当我触摸图像视图的当前位置时,touchesBegan 不起作用。它仅在我触摸原始框架(创建它的位置)时才起作用。
我的建议是 touchesBegan 不是在presentationLayer上应用,而是在原始frame上应用。
你有解决这个问题的方法吗??我真的很想从 Customer 类中解决这个问题,而不是从主 UIViewController 解决。
非常感谢,沙哈尔。
objective-c - 在任何时间点获取 CABasicAnimation 中扩展圆圈的大小
我想知道如何在动画期间的任何时间点获得扩张圈动画的直径(或半径)。我也会在获得大小后立即停止动画,但我认为我无法停止并将其从图层中移除,直到获得圆圈的大小。
有关如何实现扩展圆圈动画的示例,它是iPhone Quartz2D 渲染扩展圆圈addGrowingCircleAtPoint:(CGPoint)point
问题答案中方法中显示的实现的变体。
我试图检查图层、动画等的各种值,但似乎找不到任何东西。我认为更糟糕的情况是,我可以尝试通过将当前时间放入其动画中来做出最佳猜测,并根据其往返大小状态使用它来确定它“应该”在哪里。这似乎有点矫枉过正,因为我认为这是一个在我可以轻松获得的地方增加的值。
更新:
我已经在表示层上尝试了几个属性,包括似乎永远不会改变的变换,所有值总是相同的,无论检查时圆圈的大小如何。