UIView.animateWithDuration走出界限

时间:2016-06-16 08:13:02

标签: ios swift animation uiviewanimation

我试图动画一些textfield。在屏幕外开始动画并移动到屏幕中心。但就我而言,动画从中心开始,走出bounds。当我在viewWillAppear / viewDidAppear中声明这一点时会发生这种情况,但在viewDidLoad中所有工作都很好/

override func viewWillAppear(animated: Bool) {
    emailField.center.x -= view.bounds.width
}

override func viewDidAppear(animated: Bool) {

    UIView.animateWithDuration(0.5, delay: 0.4, options: [], animations: {
        self.emailField.center.x += self.view.bounds.width
        }, completion: nil)

}

1 个答案:

答案 0 :(得分:1)

您可以尝试动画转换属性。

override func viewWillAppear(animated: Bool) {
    emailField.transform = CGAffineTransformMakeTranslation(-view.bounds.width, 0.0)
}

override func viewDidAppear(animated: Bool) {
    UIView.animateWithDuration(0.5, delay: 0.4, options: [], animations: {
        self.emailField.transform = CGAffineTransformIdentity
    }, completion: nil)
}