gpt4 book ai didi

iphone - 在旋转和移动时交换 UIImageView 的图像会留下原始图像的痕迹

转载 作者:行者123 更新时间:2023-11-29 13:47:35 26 4
gpt4 key购买 nike

我正在使用“翻转文本”imageView 并旋转它,同时在屏幕上向下移动它并调整框架。我还将图像换成不同但相似的图像。

除了图像交叉淡化仍然显示淡出的原始位置而不是跟随移动之外,一切都按指示工作。此屏幕截图显示了动画的原始状态、过渡状态和结束状态,并清楚地显示了问题。

enter image description here

我的代码看起来像这样(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];

如何使图像交换的淡入淡出发生在适当的位置?

最佳答案

尝试在完成 block 中交换图像。 (目前为零)

编辑:如果它们有很大不同,您可以使用第二个 UIImageView。在淡出一个的同时淡出一个。您可以在他们翻译时执行此操作,或者等待“缩小”的原件到达并在“更好”的较小版本淡入时将其淡出。

然后在该动画的完成 block 中删除不需要的额外 View 。

关于iphone - 在旋转和移动时交换 UIImageView 的图像会留下原始图像的痕迹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6669970/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com