删除UIView动画之间的暂停

时间:2013-06-11 21:14:02

标签: cocoa-touch core-animation uiviewanimation

我正在将几个动画链接在一起,并且无法消除连续动画之间的暂停。首先,我尝试在完成块中嵌套UIView动画。从那以后,我转向了这个解决方案:

http://xibxor.com/objective-c/uiview-animation-without-nested-hell/

我认为它更具可读性,但我有同样的暂停问题。

2 个答案:

答案 0 :(得分:1)

问题可能是你的动画时间,而不是暂停。默认情况下,动画使用轻松,缓和时间。这意味着每个动画从0开始,加速到全速,然后减慢到停止。然后下一个动画做同样的事情。

如果要链接一系列动画以创建无缝效果,您可能希望使用线性动画计时。查看UIView类方法animateWithDuration:delay:options:animations:completion:

传递UIViewAnimationOptionCurveLinear作为options参数。

答案 1 :(得分:1)

这很快,懒得转换为目标C.将动画链接在动画事务块中。

UIView.animateKeyframesWithDuration(totalAnimationDuration, delay: 0, options:UIViewKeyframeAnimationOptions.CalculationModeLinear, animations: {

            for (var i = 0; i < wayPoints.count; i++) {
                let nextWayPoint = wayPoints[i]

                UIView.addKeyframeWithRelativeStartTime(CGFloat(i) * relativeDuration, relativeDuration: relativeDuration, animations: {
                    token.frame = CGRect(x: nextWayPoint.x + self.inset, y: nextWayPoint.y + self.inset, width: token.frame.size.width, height: token.frame.size.height)
                    })


            }


            }, completion: { success in


            })