UIImageView动画的持续时间,以及动画图像

时间:2015-06-09 17:52:53

标签: ios xcode swift

我刚刚开始iOS开发,正在学习Swift和Xcode。我在视图控制器中有一个UIImageView对象,并且想要在两个图像之间切换时将这个UIImageView移动到屏幕上。这是代码:

@IBOutlet weak var anImageView: UIImageView!

@IBAction func beginAnimation(sender: AnyObject) {

    let imgListArray:[AnyObject] = [UIImage(named: "img1.png")!, UIImage(named: "img2.png")!]
    anImageView.animationImages = imgListArray
    anImageView.animationDuration = 0.5
    anImageView.image = UIImage(named: "img1.png")
    anImageView.startAnimating()

    UIView.animateWithDuration(4.0, animations: {
        self.anImageView.center = CGPoint(x: 600, y: 600)
        }, completion: {finished in
            self.anImageView.center = CGPoint(x:80,y:80)})
}

问题在于坐标。 UIImageView在屏幕外启动,不会在(80,80)结束。切换很好。

我想我必须将坐标转换为superview(?)空间,但我尝试这样做并没有成功。例如,我尝试了convertPoint函数,但没有成功。

非常感谢任何指导!

感谢。

2 个答案:

答案 0 :(得分:1)

您尚未明确指出想要做什么,所以让我们专注于 所做的代码:

UIView.animateWithDuration(4.0, animations: {
    self.anImageView.center = CGPoint(x: 600, y: 600)
}, completion: {finished in
    self.anImageView.center = CGPoint(x:80,y:80)
})

该代码说:

  1. 无论现在在哪里,都要启动从该点向(600,600)移动的图像视图(除非您在iPad上,否则将在屏幕外)。

  2. 当它到达那里时,让它从<(600,600)跳到到(80,80)。

  3. 这就是你说的。所以,如果那不是你想要的,那就别说了!

答案 1 :(得分:0)

取消选中自动布局选项现在解决了这个问题。但正确的方法是保持自动布局和动画限制。一旦我开始工作,就会发布解决方案。