2016-11-17 5 views
-1

Я пытался оживить IsHidden, кажется, работает нормально, но если я по ошибке анимировать IsHidden = ложные 5 раз, установив yes истинным 5 раз, то иногда я должен оживить IsHidden = true 2 или более раз, чтобы сделать мой UIView видимым!UIView.animate не анимировать булево значение отлично

Я что-то упустил?

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 
      } 
} 

ответ

1

Не следует анимировать параметр «isHidden» вида. Вы должны анимировать его альфу.

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 
      } 
} 

- ОБНОВЛЕНИЕ -

Если вы хотите, чтобы сделать вид, скрытый после анимации вы можете использовать это:

myLabel.isHidden=false 
UIView.animateWithDuration(0.3, delay: 0.0, options: .CurveEaseOut, animations: { 
    myLabel.alpha=1.0 
    }, completion: { finished in 

    }) 

UIView.animateWithDuration(0.3, delay: 0.0, options: .CurveEaseOut, animations: { 
    myLabel.alpha=0.0 
    }, completion: { finished in 
    myLabel.isHidden=true 
    }) 
+0

Но мне нужно, чтобы оживить IsHidden так после того, как он удаляется из зрения autolayout сжимается макет. – AVEbrahimi

+0

@AVEbrahimi проверить мой обновленный ответ пожалуйста. –

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 
      }) 
} 
+0

Но мне нужно анимировать isHidden, поэтому после его удаления из окна автозапуск сжимает макет. – AVEbrahimi

+0

Итак, попробуйте анимировать альфа-свойство и высоту рамки 'UILabel'. – maho125

Смежные вопросы