使用animateWithDuration UIImage开关案例时出错

时间:2015-09-14 01:36:16

标签: ios objective-c animation

我正在尝试预先设置图像的帧,然后使用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;            
                         }];

1 个答案:

答案 0 :(得分:0)

请将完成块语句放在完成参数的IF条件中。

取消动画时,完成的参数将为NO:通常,当您中断动画以启动另一个动画时(例如,您已经开始新动画,在当前动画结束之前,参数将从当前状态)或您已直接取消动画。

因此,即使动画被取消,您的完成块仍然会被调用,这可能会导致崩溃。

由于访问了一个不存在的对象,似乎发生了崩溃。您还可以尝试使用Zoombie缩小导致崩溃的对象。