gpt4 book ai didi

ios - Xcode Swift 动画透明度错误

转载 作者:行者123 更新时间:2023-11-30 14:05:59 28 4
gpt4 key购买 nike

我的目标是让 label0label1 更改透明度时动态更改文本。以下是我用于 label1 动画的代码部分:

        UIView.animateWithDuration(2.0, animations: { () -> Void in
self.label1.alpha = 0.0
//this is what happens after "tIme"
dispatch_after(tIme1, dispatch_get_main_queue()) {
UIView.animateWithDuration(2.0, animations: { () -> Void in
self.label1.alpha = 1.0
})
dispatch_after(tIme20, dispatch_get_main_queue()) {
UIView.animateWithDuration(5.0, animations: { () -> Void in
self.label1.alpha = 0.0
})
}
}

})

它基本上从透明开始,1秒后淡入完全可见,20秒后又恢复透明。这部分代码有效 ^

不起作用的部分是应该使 label0 更改的部分:

        if(label1.alpha == 0.0)    {
self.label0.text = "transparent"
}
else {
self.label0.text = "visible"
}

我想要做的事情是不言自明的。如果label1是透明的,则label0说“透明”,否则说“可见”。问题是,即使 label1 可见,它仍然显示“透明”。

我该如何解决这个问题?

如果您需要任何说明,请随时询问。

编辑:我不可能更改动画,因为我需要做的是在 ViewDidLoad 上显示一些文本,在 ViewDidAppear 上显示其他文本。我可以很容易地做到这一点,但由于它的文本不同,我第一次打开应用程序时它会重叠。所以我需要做的是等待第一个文本消失,然后检查它是否不可见。如果是,在 ViewDidAppear 上,我可以显示我的第二个文本。

最佳答案

问题与这些行有关

dispatch_after(tIme1, dispatch_get_main_queue()) {

这一行的意思是“在 tIme1 秒后将此 block 分派(dispatch)到主线程”:

 UIView.animateWithDuration(2.0, animations: { () -> Void in
self.label1.alpha = 1.0
})

这里的第一个问题是dispatch_after不保证该 block 将在tIme1之后运行。该行保证该 block 将在 tIme1 秒内分派(dispatch)到主线程。 iOS 会说明何时运行。然后,您将运行另一个异步 block ,只要 iOS 希望它运行,它就会运行。

在如此不确定的情况下,如何测试 alpha 是 0 还是 1?

而且,我非常确定标签的文本属性不可设置动画。文本会突然从一件事变成另一件事。

您需要使用以下方法连接所有动画:

UIView.animateWithDuration(2.0, animations: {
self.label1.alpha = 0.0
self.label0.text = "transparent"

}, completion: { // first animation is complete... running this block
(value: Bool) in

UIView.animateWithDuration(2.0, animations: {
self.label1.alpha = 1.0
self.label0.text = "visible"

}, completion: { // second animation is complete... running this block
(value: Bool) in

UIView.animateWithDuration(20.0, animations: {
self.label1.alpha = 0.0
self.label0.text = "transparent"
})
})
})

关于ios - Xcode Swift 动画透明度错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32407149/

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