作为 iPhone 游戏的一部分,我的按钮在您按下时会变大一点,而在您松开时会缩小(作为响应用户输入的一种方式)。负责的代码如下所示:
-(void) magnifyButton: (CALayer *) button
{
button.transform = CATransform3DScale(button.transform, buttonPressScale, buttonPressScale, 1.0);
}
-(void) reduceButton: (CALayer *) button
{
button.transform = CATransform3DScale(button.transform, 1.0 / buttonPressScale, 1.0 / buttonPressScale, 1.0);
}
这很好用。但是,如果我重复按下一个按钮(每个按钮都是 CALayer 上的一个小图像),则后台(在 OpenGL View 中)中进行的动画将减慢至 10 FPS。这对我来说似乎很荒谬。我发现了类似的问题here ,但由于我使用隐式动画,我不确定在这种情况下如何进行优化。
如果有人可以就如何以更合理的速度运行提出建议,我将非常感激。先谢谢你了
最佳答案
在动画开始之前,无需渲染 CALayer
对于每一帧,将其替换为自身的图像:
button.shouldRasterize = YES;
动画完成后,将属性设置回 NO
.
关于iphone - 核心动画缩放速度异常缓慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4121005/