我有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;
}
在最后一个我想调用另一个函数......这一切都可能吗?感谢
答案 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...
})
})