0

我收到此错误:

在此处输入图像描述

使用此代码:

-(void)lowerGUI {
[mainGUI.layer addAnimation:guiLower forKey:@"transform.translation.y"];

}

我有一个 UIView,如果需要,我正在上下动画以将其移开。我在 viewDidLoad 中设置了动画:

guiLower = [CABasicAnimation animationWithKeyPath:@"transform.translation.y"];
guiLower.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
guiLower.duration = 1;
guiLower.fromValue = [NSNumber numberWithFloat:320];
guiLower.toValue = [NSNumber numberWithFloat:481];

代码构建并运行良好,但是当我单击按钮运行动画时,出现错误。

有任何想法吗?

谢谢你。

4

1 回答 1

2

您可能应该持有对动画的引用:

guiLower = [CABasicAnimation animationWithKeyPath:@"transform.translation.y"];

在您的类的 ivar 或属性中,并确保您分配给它的对象被正确保留。实际上,EXC_BAD_ACCESS这通常是由访问已释放的对象实例引起的。

例子:

在 .h 文件中:

@property (nonatomic, retain) CABasicAnimation* guiLower;

在 .m 文件中:

@synthesize guiLower;

...

self.guiLower = [CABasicAnimation animationWithKeyPath:@"transform.translation.y"];
...
于 2012-05-31T10:46:54.350 回答