UIView.animate没有完美地动画bool值

时间:2016-11-17 08:50:15

标签: ios animation uiview swift3

我尝试动画isHidden,似乎工作正常,但如果我通过将yes设置为真5次错误地动画 isHidden = false 5次,那么有时我应该动画 isHidden = true 2次或更多时间让我的UIView可见!

我错过了什么吗?

if (yes)
{
    UIView.animate(withDuration: 0.3, delay:0, animations: {
                myLabel.isHidden=false
            }
}
else
{
    UIView.animate(withDuration: 0.3, delay:0, animations: {
                myLabel.isHidden=true
            }
}

2 个答案:

答案 0 :(得分:1)

您不应为视图的“isHidden”参数设置动画。你应该为它的动画制作动画。

public void SetPersonField(Person person, <should it be Type?> personFieldType)
{
   // accessing person's correct field type
} 

- 更新 -

如果你想在动画后隐藏视图,你可以使用它:

if (yes)
{
    UIView.animate(withDuration: 0.3, delay:0, animations: {
                myLabel.alpha=1.0
            }
}
else
{
    UIView.animate(withDuration: 0.3, delay:0, animations: {
                myLabel.alpha=0.0
            }
}

答案 1 :(得分:0)

我认为问题是你在Bool类型上使用线性动画,它只有2个值(false = 0,true = 1)以及它之间的任何其他值(它的脉冲)。

试试这个:

if (yes)
{
    myLabel.alpha = 0
    myLabel.isHidden = false
    UIView.animate(withDuration: 0.3, animations: {
                myLabel.alpha = 1
            })
}
else
{
    UIView.animate(withDuration: 0.3, animations: {
                myLabel.alpha = 0
            }, completion: { (status) in
                myLabel.isHidden = true
            })
}