2014-09-30 1 views
2

UIView.animateWithDuration вызов в моей функции ViewController viewDidLoad не анимируется. Блок завершения немедленно вызывается. Выход println показывает «завершение true». Является ли функция viewDidLoad неправильным местом для размещения моей анимации запуска? Любые советы приветствуются.UIView.animateWithDuration не анимирует

class ViewController: UIViewController { 
    @IBOutlet var beatIndicator:UIView? 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     if let led = beatIndicator? { 
      led.alpha = 1.0 
      led.frame = CGRectMake(20, 20, 30, 30) 
      led.layer.cornerRadius = 15 

      UIView.animateWithDuration(3.0, animations:{ 
       led.alpha = 0.5 
       led.frame = CGRectMake(25, 25, 20, 20) 
       led.layer.cornerRadius = 10 
      }, completion:{(value: Bool) in 
       println("completion \(value)") 
      }) 
     } 

     // ... 
    } 
} 

ответ

7

Вы пытались положить его в ViewDidAppear?

override func viewDidAppear(animated: Bool) { 
     super.viewDidAppear(animated) 
     if let led = beatIndicator? { 
      led.alpha = 1.0 
      led.frame = CGRectMake(20, 20, 30, 30) 
      led.layer.cornerRadius = 15 

      UIView.animateWithDuration(3.0, animations:{ 
       led.alpha = 0.5 
       led.frame = CGRectMake(25, 25, 20, 20) 
       led.layer.cornerRadius = 10 
      }, completion:{(value: Bool) in 
       println("completion \(value)") 
      }) 
     } 

     // ... 
    } 
+0

Просто ударил меня по служебной лестнице –

3

viewDidLoad() не является идеальным местом, где вы должны анимировать виды. Я пробовал свой код в методе viewDidAppear(), и он работает.

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

  • Нет связанных вопросов^_^