动画ImageViews延迟

时间:2016-04-17 19:54:45

标签: ios swift uiviewanimation

学习Swift并在今天遇到这个问题:

我有3张图片,我为其创建了出口:

@IBOutlet weak var bookImageView: SpringImageView!
@IBOutlet weak var sketchImageView: SpringImageView!
@IBOutlet weak var xcodeImageView: SpringImageView!

当我点击按钮动作learnButtonDidTouch时,我想让它们动画:

bookImageView马上

sketchImageView 0,2延迟

xcodeImageView 0,2延迟

在我的搜索过程中,我只找到了使用UIView.animationWithDuration的代码,但我还没有完全理解为什么我不能直接在我的ImageView上使用.animationWithDuration。这里的替代方案是什么?使用.animate().animation时无法找到任何内容,因此我猜我必须在.animationWithDuration上使用UIView。但在这种情况下我该怎么办呢?

这是我按下按钮时的代码:

@IBAction func learnButtonDidTouch(sender: AnyObject) {
    sketchImageView.animation = "pop"
    xcodeImageView.animation = "pop"
    bookImageView.animation = "pop"
    sketchImageView.animate()
    xcodeImageView.animate()
    bookImageView.animate()
}

2 个答案:

答案 0 :(得分:0)

animateWithDuration有一个completionHandler:。在第一个动画的完成处理程序中,执行第二个动画;在第二个动画的完成处理程序中,执行第三个动画。

此外,animateWithDuration有一个delay参数,因此您可以轻松延迟第二个和第三个动画。

答案 1 :(得分:0)

你绝对可以使用UIView.animateWithDuration。下面是一些代码。

UIView.animateWithDuration(0.2, delay: 0, options: nil, animations: { () -> Void in
    //bookImageView animation
}, completion:
    UIView.animateWithDuration(0.2, delay: 0, options: nil, animations: { () -> Void in
    //sketchImageView animation
    }, completion:
        UIView.animateWithDuration(0.2, delay: 0, options: nil, animations: { () -> Void in
            //xcodeImageView animation
        }, completion: nil )
    )
)