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

Posted

技术标签:

【中文标题】如何简单地为 UIimageView 设置动画?【英文标题】:How to simply animate an UIimageView? 【发布时间】:2015-04-30 14:02:12 【问题描述】:

我想将一个 40、40 像素的正方形从顶部移动到底部,然后在 3 秒内重复该动作。我会将整个东西放在视图控制器中的什么位置?没有开始按钮,所以我要在 viewdidload 中输入吗?

到目前为止我有这个

    UIView.animateWithDuration(0.2, animations: 

        , completion: 

    )

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

【问题讨论】:

请在您的帖子中包含what you have tried。 【参考方案1】:

正如@picciano 所说,如果您使用情节提要,您应该有一个IBOutlet 到一个UIImageView。所以你在你的视图控制器中你可以尝试这样的事情:

@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))
    )

【讨论】:

【参考方案2】:

首先,考虑将动画放在viewWillAppear 中,然后在需要时将其禁用在viewDidDisappear 中。

其次,如果您使用自动布局,您可能需要为相关约束创建一个IBOutlet,并为约束的constant 属性设置动画,而不是直接为视图对象的位置设置动画。

【讨论】:

以上是关于如何简单地为 UIimageView 设置动画?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Unity3d 中最好地为 2D 精灵设置动画? [关闭]

如何在点击手势上为 UIImageView 设置动画?

使用 animationImages 检测 UIImageView 中单击了哪个图像

如何使用流畅的动画垂直地为集合视图设置动画

如何同时成功地为多个 CALayers 设置动画?

如何有效地为列表列表中的多个补丁设置动画