Анимация Снимается обратно при изменении UIImage

У меня есть UIImageView, который работает по экрану, когда кнопка нажата и удерживается. Когда кнопка нажата, она изменяет UIImage UIImageView, а когда кнопка отпущена, я изменяю ее на исходный UIImage. Когда изображение меняется обратно, оно возвращается к тому месту, где оно было запущено.

Этот таймер вызывается при нажатии кнопки:

//This is the image that changes when the button is pressed.
imView.image = image2;
runTimer = [NSTimer scheduledTimerWithTimeInterval:0.04
                                            target:self
                                          selector:@selector(perform)
                                          userInfo:nil
                                           repeats:YES];

Это называется, когда кнопка перестает удерживаться:

- (IBAction)stopPerform:(id)sender{
   [runTimer invalidate];

   //THIS IS WHAT SNAPS THE ANIMATION BACK:
   //Without this the animation does not snap back
   imView.image = image1;
}

- (void)performRight{

 CGPoint point0 = imView.layer.position;
 CGPoint point1 = { point0.x + 4, point0.y };

 CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"position.x"];
 anim.fromValue    = @(point0.x);
 anim.toValue  = @(point1.x);
 anim.duration   = 0.2f;
 anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];

 // First we update the model layer's property.
 imView.layer.position = point1;

 // Now we attach the animation.
 [imView.layer  addAnimation:anim forKey:@"position.x"];
}

Нужно ли добавлять изменения в изображения в анимацию? Если так, то как? Я действительно смущен.

Ответы на вопрос(1)

Ваш ответ на вопрос