一些顾问为我们构建了一些代码。我正在研究他们为UIView子类编写的方法。它基本上是这样的:
- (void)startAnimation {
[self.circle removeAllAnimations];
// then some animation code for the circle. The circle is a CAShapeLayer.
[self.circle addAnimation:group forKey:@"animationPath"];
}
两个问题,这是实现动画的好方法吗?喜欢先删除所有动画,然后添加它?我想知道这是一个昂贵的操作,总是首先删除动画,因为在应用程序的其他地方的另一个for循环,它基本上看着对象,只是调用:
for (id points in pointsArray) {
[points startAnimation];
}
我想知道是否盲目删除动画并将它们添加回来,而不检查点对象是否已经动画是否正常以及我是否会受到性能影响。
另外,有没有办法检查一些动画是什么?查看代码,动画将启动所有对象。但是,如果它们位于屏幕之外(因为它位于scrollView中并且当前不在视图中),即使在创建每个对象并将其添加到视图时对每个对象调用startAnimation
,对象也不会设置动画。感谢。
答案 0 :(得分:0)
就个人而言,我不认为这是一种糟糕的工作方式,确保在添加你的动画之前删除可能正在运行的所有动画,但正如我所说,这是个人意见。
我认为这不会是一个非常糟糕的性能打击,特别是考虑到可能在那一刻,没有动画正在运行,但正如我所说,这只是个人的。
另一方面,如果你检查苹果开发人员指南,它似乎它会删除动画