我正在尝试实现此炫酷功能,其中应用程序加载后徽标会略微向上移动,并显示登录 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

07-27 16:40