UIView.animateWithDuration 越界
UIView.animateWithDuration going out of the bounds
我正在尝试制作一些 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)
}
您可以尝试为变换设置动画 属性。
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)
}
我正在尝试制作一些 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)
}
您可以尝试为变换设置动画 属性。
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)
}