iOS Swift动画 - 将图像移动到新位置

eku*_*erg 4 xcode animation image 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!")
        })
    }
Run Code Online (Sandbox Code Playgroud)

徽标从我想要移动到的地方移动到原点.因此,在此示例中,徽标已经显示为(y-100),然后移动到原点X,Y.

sfe*_*ein 9

由于视图实际上并未布置在屏幕上,因此viewDidLoad()您不应该尝试在那里制作任何动画.相反,你应该等到视图完全呈现,这发生在viewDidAppear(animated: Bool).另外,我建议newCenter在动画调用之外计算var,然后简单地self.logoImage.center = newCenter在动画调用中进行设置.