当我之前打开它后回到视图控制器时它没有动画标签Xcode Swift

时间:2017-08-06 01:40:05

标签: swift xcode

当我打开我的应用程序时,我有一个从屏幕外部激活的标签。当我第一次打开视图控制器时它工作。但是,当我转到另一个视图控制器然后返回到初始视图控制器时,此标签将在那里而不是动画。

    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)

    }

有人有什么建议吗?谢谢!

1 个答案:

答案 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)

        }
    }