我正在使用 UIView 动画块一次在显示器的多个图层上为 CALayer 属性(在本例中为背景颜色)设置动画。
所有图层都是不透明的,我在一个块中为所有内容设置动画,基本上就像这样
[UIView beginAnimations:@"outer" context:nil];
float duration = .25;
float offset = 0.0;
for( NSArray *viewsInPass in viewQueue ) {
for( UIView *innerView in viewInPass ) {
[UIView beginAnimations:@"inner" context:nil];
[UIView setAnimationDelay:offset];
[UIView setAnimationDuration:duration];
[innerView.layer setBackgroundColor:[newColor CGColog]];
[UIView commitAnimations];
}
offset += duration;
}
[UIView commitAnimations];
一旦这有 4-5 个并发层为其背景颜色设置动画,它就会变得非常不稳定,并且设备基本上开始完全失去其渲染速率并且只是冻结到剩余动画的末尾。所有视图不重叠,它们都是不透明的,通常约为 20x20 像素。
我对这是多么的糟糕感到有点震惊,尤其是在阅读了这么多关于 Quartz 2D 等令人欣慰的东西之后。我觉得我必须在这里遗漏一些基本的东西!
帮助!