gpt4 book ai didi

macos - MacO 中的逐帧动画

转载 作者:行者123 更新时间:2023-12-03 17:47:46 36 4
gpt4 key购买 nike

我正在寻找一种在 MacOs 应用程序中以编程方式逐帧绘制动画的方法(不是关键帧属性动画)。我尝试使用drawLayer:inContext:委托(delegate)方法绘制到CALayers,调用setNeedsDisplay来绘制每个帧,但是我变得很差这样做的性能。在 Cocoa 中是否有推荐的方法来制作这种类型的动画?

最佳答案

制作完全自定义动画的一个好方法是使用 CADisplayLink (iOS) 或 CVDisplayLink (macOS)。 CVDisplayLink 基本上是一个计时器,它在显示刷新时触发。

然后,您可以根据从 CVDisplayLink 获得的值计算自己的计时函数。 API 仍然是 C 语言,所以使用起来有点麻烦,尤其是在 Swift 中,但是一旦你了解了它的功能,它就会像魅力一样工作。

我在 CVDisplayLink 方面只有良好的经验,尤其是在图层方面。他们确实非常有表现力。我能够以 60fps 的速度制作 1000 多个层 CVDisplayLink 的动画,没有任何问题。

如果您在使用 API 时需要任何帮助,请随时询问!

替代方案:

如果你想使用更现代的 API,我可以推荐 SpriteKit。还有一些不错的动画 API。而且他们的表现真的很好。 Apple 使用它本身来绘制更复杂的 View (如 Xcode 中的内存调试器)。

关于macos - MacO 中的逐帧动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45685161/

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