我正在拍摄“翻转文本”图像并旋转它,同时在屏幕上向下移动并调整框架。我也在换取图像以获得不同但相似的图像。
除了图像交叉渐变仍然显示淡出的原始位置而不是跟随移动之外,一切都按指示工作。此屏幕截图显示了动画的原始状态,转换状态和结束状态,并清楚地显示了问题。
我的代码看起来像这样(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];
如何让图像交换的交叉渐变到位?
答案 0 :(得分:1)
尝试在完成块中交换图像。 (目前为零)
编辑: 如果它们大不相同,您可以使用第二个UIImageView。当你淡入时淡出一个。你可以在它们翻译时这样做,或者等待“缩小”的原件到达并淡出它,而“更好”的较小版本逐渐消失。
然后在该动画的完成块中删除不需要的额外视图。