我正在尝试实现此炫酷功能,其中应用程序加载后徽标会略微向上移动,并显示登录 View 。问题是当我使用此代码时:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
UIView.animateWithDuration(2, animations: {
var newCenter = self.logoImage.center
newCenter.y -= 100
self.logoImage.center = newCenter
}, completion: { finished in
println("Basket doors opened!")
})
}
徽标从我想要移动的位置移动到了原始位置。因此,在此示例中,徽标已经以(y-100)出现,然后移动到原点X,Y。
最佳答案
由于 View 实际上并未在屏幕上以viewDidLoad()
布局/显示在屏幕上,因此您不应该尝试在此设置动画。相反,您应该等到 View 完全呈现为止,这在viewDidAppear(animated: Bool)
中发生。另外,我建议在动画调用之外计算newCenter
var,然后在动画调用内简单地设置self.logoImage.center = newCenter
。