如何简单地为UIimageView设置动画?

时间:2015-04-30 14:02:12

标签: swift animation

我想从顶部到底部移动40,40像素的正方形,然后在3秒钟内重复该动作。我会把整个东西放在viewcontroller里?没有开始按钮,我会在viewdidload中输入吗?

到目前为止,我有这个

    UIView.animateWithDuration(0.2, animations: {

        }, completion: {

    })

从某个地方开始。我会将图像设置为等于UIView吗?它应该是什么样的?图像被称为mrock。 我尝试在动画部分使用blank.moveToPoint(CGPoint(x:0,y:0)),但是我不需要A UIBezierPath的东西吗?

2 个答案:

答案 0 :(得分:0)

首先,考虑将动画放在constant中,然后在{{1}}中根据需要将其停用。

其次,如果您正在使用自动布局,则可能需要为相关约束创建{{1}}并为约束的{{1}}属性设置动画,而不是直接为视图对象的位置设置动画

答案 1 :(得分:0)

正如@picciano所说,如果您使用的是故事板,则应该IBOutletUIImageView。所以你在视图控制器中你可以尝试这样的事情:

@IBOutlet weak var imageView: UIImageView!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    //'img' is a picture imported in your project
    self.imageView.image = UIImage(named: "img")
}

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)

    let newPos: CGFloat = 300.0
    UIView.animateWithDuration(1.0, animations: { () -> Void in
        self.imageView.frame = CGRectMake(0, newPos, CGFloat(self.imageView.bounds.size.width), CGFloat(self.imageView.bounds.size.height))
    })
}