当我打开我的应用程序时,我有一个从屏幕外部激活的标签。当我第一次打开视图控制器时它工作。但是,当我转到另一个视图控制器然后返回到初始视图控制器时,此标签将在那里而不是动画。
levelsLabel.center = CGPoint(x:levelsLabel.center.x - 500, y:levelsLabel.center.y)
UIView.animate(withDuration: 2) {
self.levelsLabel.center = CGPoint(x:self.levelsLabel.center.x + 500, y:self.levelsLabel.center.y)
}
有人有什么建议吗?谢谢!
答案 0 :(得分:1)
将您的代码块放在viewWillAppear
而不是viewDidLoad
中会使其正常工作。但是,根据Apple Doc。
viewDidAppear
:使用此方法触发任何需要的操作 在屏幕上显示视图时立即发生,例如提取 数据或显示动画。
以下是我建议你做的事情。
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
levelsLabel.center = CGPoint(x:levelsLabel.center.x - 500, y:levelsLabel.center.y)
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
UIView.animate(withDuration: 2) {
self.levelsLabel.center = CGPoint(x:self.levelsLabel.center.x + 500, y:self.levelsLabel.center.y)
}
}