2014-09-23 61 views
4

我试图实现这个很酷的功能,应用程序加载之后的徽标稍微向上移动,登录视图出现。问题是,当我使用此代码:iOS Swift动画 - 将图像移动到新位置

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!") 
     }) 
    } 

标志移动到从我希望它移动到的地方的发源地。所以在这个例子中,logo已经出现(y-100),然后移动到原点X,Y。

+0

试着把它放在viewDidAppear中。 – AdamPro13 2014-09-23 21:14:17

回答

9

由于视图实际上没有布置在viewDidLoad()的屏幕上,所以您不应该试图在那里设置任何动画。相反,您应该等到视图完全呈现,这发生在viewDidAppear(animated: Bool)。另外,我会建议在动画调用之外计算newCenter var,然后在动画调用中简单设置self.logoImage.center = newCenter