Анимация Снимается обратно при изменении 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"];
}
Нужно ли добавлять изменения в изображения в анимацию? Если так, то как? Я действительно смущен.