MacOs中的逐帧动画

问题描述:

我正在寻找一种在MacOs应用程序(而不是关键帧属性动画)中逐帧编程绘制动画的方法。我已经尝试使用drawLayer:inContext:委托方法绘制到CALayer s,请求setNeedsDisplay绘制每个帧,但是我这样做的性能很差。在Cocoa中有推荐的方法来做这种类型的动画吗?MacOs中的逐帧动画

+0

你的表现越来越差,因为你不能那样做 –

完成自定义动画的好方法是使用CADisplayLink(iOS)或CVDisplayLink(macOS)。 CVDisplayLink基本上是一个定时器,随着显示刷新频率一直在触发。

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

我只有与CVDisplayLink,特别是有层次的良好经验。它们非常高效。我能够在60fps下驱动1000+图层CVDisplayLink,没有任何问题。

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

备选:

如果你想使用更现代化的API,我可以推荐SpriteKit。还有一些不错的动画API。他们表现非常好。 Apple使用它自己绘制更复杂的视图(如Xcode中的Memory Debugger)。