UIView.animateWithDuration не анимация
Вызов UIView.animateWithDuration в моей функции ViewController viewDidLoad не анимируется. Блок завершения вызывается немедленно. Вывод println показывает "завершение истина". Является ли функция viewDidLoad неправильным местом для размещения анимации при запуске? Любые советы приветствуются.
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)")
})
}
// ...
}
}
2 ответа
Решение
Вы пытались положить его в 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)")
})
}
// ...
}
viewDidLoad()
Это не идеальное место, где вы должны оживлять виды. Я попробовал твой код в viewDidAppear()
метод, и это работает.