我正在尝试预先设置图像的帧,然后使用animateWithDuration
对其进行转换。它工作正常,直到我添加我的动画代码。我收到的错误是:
exc_bad_access(代码= 2,地址= 0x0)。案例1:
[imageView setFrame:CGRectMake(-400, -150, imageView.frame.size.width, imageView.frame.size.height)];
imageView.image = [UIImage imageNamed:@"jennLawrence.JPG"];
[UIView animateWithDuration:55
delay:0.5
options:UIViewAnimationOptionBeginFromCurrentState
animations:(void (^)(void)) ^{
imageView.frame = CGRectMake(0, 50, 80, 0);
}
completion:^(BOOL finished){
imageView.transform=CGAffineTransformIdentity;
}];
答案 0 :(得分:0)
请将完成块语句放在完成参数的IF条件中。
取消动画时,完成的参数将为NO:通常,当您中断动画以启动另一个动画时(例如,您已经开始新动画,在当前动画结束之前,参数将从当前状态)或您已直接取消动画。
因此,即使动画被取消,您的完成块仍然会被调用,这可能会导致崩溃。
由于访问了一个不存在的对象,似乎发生了崩溃。您还可以尝试使用Zoombie
缩小导致崩溃的对象。