所以就是这样,在我的iPad屏幕上,我有768个小时钟转动。每个时钟都有一个小时和一分钟的指针。这些视觉内容在UIImageView中。我也尝试通过UIBezierPath / CAShapeLayer来表示它们,但这对性能没有帮助。当然,当我尝试动画所有它开始滞后。那么,有没有办法优化这个?动画代码非常简单
CATransform3D rotationTransform = CATransform3DMakeRotation(M_PI_2, 0, 0, 1);
CABasicAnimation *rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform"];
rotationAnimation.toValue = [NSValue valueWithCATransform3D:rotationTransform];
rotationAnimation.duration = 0.5f;
rotationAnimation.cumulative = YES;
rotationAnimation.repeatCount = HUGE_VALF;
[_imageViewMinutePointer.layer addAnimation:rotationAnimation forKey:@"transform"];
答案 0 :(得分:0)
尝试使用CAReplicatorLayer
。对不起,我没有示例代码,因为我自己没有使用它,但是我已经听过它提到了许多项目的动画效果。
答案 1 :(得分:0)
也许通过使用预渲染图像,您可以卸载大量的CPU功率。 1536个时钟不会是大钟,因此独特图片的数量会很少。