gpt4 book ai didi

ios - 动画后不显示图像

转载 作者:行者123 更新时间:2023-11-29 01:45:10 25 4
gpt4 key购买 nike

我正在尝试触发动画,当动画完成时,我希望图像保留在正在运行动画的 UIImageView 中。

但是,除非我运行动画两次,否则图像不会显示在 View 中。这是我的代码:

@IBAction func selfRightButton(sender: UIButton){
Visuals.endgameAnimation(winLoseAnimationView, animationFlow: "win");
winLoseAnimationView.image = UIImage(named: "win_00012.png");
}

这是 endgameAnimation 方法的代码:

static func endgameAnimation(animationImage: UIImageView, animationFlow: String){
var counter : Int?;
var duration : Double?;
var animationFlowImagePrefix : String?;
var imageList = [UIImage]();

if (animationFlow == "bang"){
counter = 11;
animationFlowImagePrefix = "bang_00001_000";
duration = 0.8;
}
if (animationFlow == "confetti"){
counter = 59;
animationFlowImagePrefix = "confetti_000";
duration = 0.8;
}
if (animationFlow == "lose"){
counter = 12;
animationFlowImagePrefix = "lose_000";
duration = 0.8;
}
if (animationFlow == "win"){
counter = 12;
animationFlowImagePrefix = "win_000";
duration = 0.8;
}

var i : Int?;

for (i = 0; i < counter; ++i!) {
if (i < 9) {
animationFlowImagePrefix! += "0";
animationFlowImagePrefix! += String(i!+1);
} else {
animationFlowImagePrefix! += String(i!+1);
}

var imageToAppend:UIImage = UIImage(named: animationFlowImagePrefix!)!;

imageList.append(imageToAppend);
animationFlowImagePrefix = animationFlowImagePrefix!.substringToIndex(animationFlowImagePrefix!.endIndex.predecessor())
animationFlowImagePrefix = animationFlowImagePrefix!.substringToIndex(animationFlowImagePrefix!.endIndex.predecessor())
}

animationImage.animationImages = imageList;
animationImage.animationDuration = duration!;
animationImage.animationRepeatCount = 1;
animationImage.startAnimating();
}

最佳答案

您似乎认为您的代码按以下顺序运行:

Visuals.endgameAnimation(winLoseAnimationView, animationFlow: "win");
// animation ends
winLoseAnimationView.image = UIImage(named: "win_00012.png");

但事实并非如此。动画需要时间——这就是动画,随着时间的推移而发生的变化。但是您的代码不会在动画期间神奇地暂停:它会继续播放。因此,设置图像的第二行发生在动画甚至有机会开始之前。

如果您希望在动画之后发生某些事情,请在动画的完成处理程序 中进行。这就是它的用途(因此得名)。

(在您的情况下,没有完成处理程序,因为您使用的是 ImageView 动画,但将第二行移动到第一行之前可能就足够了。我不确定 - 您必须尝试一下看看。)

关于ios - 动画后不显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32015691/

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