我试图在Swift中设置文本标签(称为标签)的动画,但它不起作用。没有错误,只是坚持下去。这是我在ViewDidLoad中的代码:
label.text = savedText
label.center = CGPoint(x:50, y:10)
UIView.animateWithDuration(1.0, delay: 1.0, usingSpringWithDamping: 0.9, initialSpringVelocity: 0.0, options: .CurveLinear, animations: { () -> Void in
self.label.center = CGPoint(x:100, y:70)
}, completion: nil)
不确定为什么它没有工作,因为我遵循了教程,但任何帮助都将不胜感激!
答案 0 :(得分:3)
我认为问题是viewDidLoad在您的视图可见之前被调用,因此动画会立即发生。
尝试将此添加到您的代码中:
override func viewDidAppear(animated: Bool) {
if label.center != CGPoint(x:50, y:10) {
UIView.animateWithDuration(1.0, delay: 0.0, usingSpringWithDamping: 0.9, initialSpringVelocity: 0.0, options: .CurveLinear, animations: { () -> Void in
self.label.center = CGPoint(x:100, y:70)
}, completion: nil)
}
}
if语句阻止标签在每次视图出现在屏幕上时生成动画,而不是仅在第一次(最初加载viewController时)执行此操作。如果你希望每次都删除它就会发生。
P.S。我也删除了延迟,因为我认为它是试图阻止错误发生(在教程中)