我收到了这个错误:
使用此代码:
-(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];
代码构建并运行良好,但是当我单击按钮运行动画时,会出现错误。
有什么想法吗?
谢谢。
答案 0 :(得分: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"];
...