Я беру изображение вида «Flipped Text» и поворачиваю его, одновременно перемещая вниз по экрану и регулируя рамку. Я также заменяю изображение на другое, но похожее изображение.
Все работает так, как указано, за исключением того, что изображение на затенении все еще показывает исходное положение для затухания вместо того, чтобы следовать за движением. На этом снимке экрана показаны исходное, переходное и конечное состояния анимации, а также четко показана проблема.
![enter image description here](https://i.stack.imgur.com/yVp0h.png)
Мой код выглядит следующим образом (logoImage
UIImageView
):
// Swap it
self.logoImage.image = [UIImage imageNamed:@"logo.png"];
CATransition *transition = [CATransition animation];
transition.duration = duration;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionFade;
[self.logoImage.layer addAnimation:transition forKey:nil];
// Spin it
CABasicAnimation* spinAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
spinAnimation.toValue = [NSNumber numberWithFloat:6*M_PI];
spinAnimation.duration = duration;
spinAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
spinAnimation.removedOnCompletion = YES;
spinAnimation.fillMode = kCAFillModeForwards;
[self.logoImage.layer addAnimation:spinAnimation forKey:@"spinAnimation"];
// Shrink it and Move it
CGRect newFrame = [self logoFrameForInterfaceOrientation:self.interfaceOrientation];
[UIView animateWithDuration:duration
delay:0.0
options:UIViewAnimationCurveEaseOut
animations:^{
self.logoImage.frame = newFrame;
}
completion:nil];
Как сделать так, чтобы свопинг изображения происходил на месте?