gpt4 book ai didi

ios - 淡入淡出动画

转载 作者:IT王子 更新时间:2023-10-29 07:36:19 25 4
gpt4 key购买 nike

这是我纠结了一段时间的一些代码。

如果启动淡入动画,标签文本也会淡入。如果我启动淡出动画,标签文本就会淡出。

当我启动 startFade 方法时,只显示淡出。在开始 fadeOut 方法之前,如何等待 fadeIn 方法可视化完成。

-(IBAction)startFade:(id)sender{
[self fadeIn];
[self fadeOut];
}

-(IBAction)fadeIn:(id)sender{
[self fadeIn];
}

-(IBAction)fadeOut:(id)sender{
[self fadeOut];
}

-(void) fadeIn{
[_label setAlpha:0];
[UILabel beginAnimations:NULL context:nil];
[UILabel setAnimationDuration:2.0];
[_label setAlpha:1];
[UILabel commitAnimations];
}

-(void) fadeOut{
[UILabel beginAnimations:NULL context:nil];
[UILabel setAnimationDuration:2.0];
[_label setAlpha:0];
[UILabel commitAnimations];
}

最佳答案

当您像现在一样连续调用 fadeInfadeOut 方法时,代码会立即运行,因此您只会看到上次的动画调用的方法。基于 UIView block 的动画提供了一个完成处理程序,这似乎正是您正在寻找的。所以你的代码可能看起来像这样:

-(IBAction)startFade:(id)sender {

[_label setAlpha:0.0f];

//fade in
[UIView animateWithDuration:2.0f animations:^{

[_label setAlpha:1.0f];

} completion:^(BOOL finished) {

//fade out
[UIView animateWithDuration:2.0f animations:^{

[_label setAlpha:0.0f];

} completion:nil];

}];
}

swift :

@IBAction func startFade(_ sender: AnyObject) {

label.alpha = 0.0

// fade in
UIView.animate(withDuration: 2.0, animations: {
label.alpha = 1.0
}) { (finished) in
// fade out
UIView.animate(withDuration: 2.0, animations: {
label.alpha = 0.0
})
}
}

关于ios - 淡入淡出动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20891614/

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