我对 Cocoa 编程很陌生。我有自定义视图(iBox),其中还有另一个类(iCircle)的 8 个自定义视图。我想制作动画来调整 iBox 的大小并将 8 个 iCircles 中的每一个移动到距 iBox 特定一侧一定距离的位置。
我用最简单的方法做了。A 创建了一个 NSViewAnimation 对象,其中包含 9 个 NSDictionaries,其中包含 8 个 iCircles 和 iBox 中的每一个的 NSViewAnimationTargetKey、NSViewAnimationStartFrameKey、NSViewAnimationEndFrameKey。
所以当我开始动画时,它播放得非常慢,就像幻灯片一样,但不是动画。它看起来像是在非常旧的 GPU 上运行的 3D 游戏。如果我只为 iBox 和 1 个 iCircle 设置动画,它会播放流畅。
所以我的问题是:你知道究竟是什么导致了这种行为吗?是说NSViewAnimation 对象中有大量的Dictionaries,还是说有大量的iCircles。也许它们应该是类似 NSViewCells 的东西。我在某处读到使用单元格比相同类型的单独视图更有效。
优化此类动画以使其高效且流畅运行的最佳方法是什么?
对于这个问题,我将不胜感激。