gpt4 book ai didi

ios - CAAnimation 获取动画属性的实时更新

转载 作者:行者123 更新时间:2023-11-29 10:35:59 26 4
gpt4 key购买 nike

我已将 CAAnimation 添加到某个 View 的层,它会为 View 的 position 设置动画。当动画运行时,我想在 OpenGL 窗口中为一个对象设置动画。为此,我必须以某种方式从我设置动画的属性中获取实时更新。

我试过了

someView.layer.addObserver(self, forKeyPath: "position", options: nil, context: nil)

但我只有在动画完成后才会收到更新。我也尝试将观察者添加到表示层,但没有成功。

有什么想法吗?

最佳答案

我试图在 CABasicAnimation 期间观察 (KVO) CALayer 的转换,但从来没有为我工作,甚至尝试在 PresentationLayer 上...我在我的情况下解决它的方法是使用 CADisplayLink。

这将允许您指定您希望链接运行的 frameTimeInterval,并且每次它触发时您都可以直接检查您一直试图从中获取 KVO 更新的层的转换。

对我来说效果很好。

所以,像这样:

displayLink = CADisplayLink(target: self, selector: "foo")
displayLink?.frameInterval = 1
displayLink?.addToRunLoop(NSRunLoop.mainRunLoop(), forMode: NSDefaultRunLoopMode)

在 foo() 内部,我会检查层的 presentationLayer() 上的转换,然后我会根据需要使用信息...

关于ios - CAAnimation 获取动画属性的实时更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27056684/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com