我正在将几个动画链接在一起,并且无法消除连续动画之间的暂停。首先,我尝试在完成块中嵌套UIView动画。从那以后,我转向了这个解决方案:
http://xibxor.com/objective-c/uiview-animation-without-nested-hell/
我认为它更具可读性,但我有同样的暂停问题。
答案 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
})