Swift将动画组合成一个完成

时间:2016-05-14 23:17:22

标签: swift animation swift2

我有5个动画,它们只是用户点击登录按钮后页面上的对象。我在后续的每一个上增加了0.3个延迟。我想知道是否有更清晰,更有效的方法来编写这段代码。

function fetch($keys) {
    if (!is_array($keys))
        $keys = array($keys);

    $arr = $this->vars;

    foreach($keys as $key)
    {
        if (!isset($arr[$key]))
            return FALSE;

        $arr = $arr[$key];
    }

    return $arr;
}

在最后一个我想调用另一个函数......这一切都可能吗?感谢

1 个答案:

答案 0 :(得分:2)

您可以使用完成闭包来触发下一个动画。这样您就不需要使用延迟,并且可以嵌套动画。

UIView.animateWithDuration(2, delay: 0, options: .CurveEaseIn, animations: {
    self.newUser.center.y += self.view.bounds.width
}, completion: { _ in
    UIView.animateWithDuration(2, delay: 0, options: .CurveEaseIn, animations: {
        self.loginButton.center.y += self.view.bounds.width
    }, completion: { _ in
        // And so on...
    })
})