我使用UIView动画创建了一个动画块 - 但是在UITextView上为玩家输入的每个字母触发动画(它是打字游戏)。键入新字母的那一刻,它立即完成前一个角色的动画 - 不可能重叠。如何在不中断每个动画的情况下允许多个动画开始和结束?
当前动画块:
UIView.transitionWithView(textViewForPlayer, duration: 0.1, options: .BeginFromCurrentState | .TransitionCrossDissolve | .AllowAnimatedContent, animations: {
self.textForPlayer.addAttribute(
NSForegroundColorAttributeName,
value: UIColor.clearColor(),
range: nsRangeOfTextShown)
self.textViewForPlayer.attributedText = self.textForPlayer
}, completion: { finished in
UIView.transitionWithView(self.textViewForPlayer, duration: 2.1, options: .BeginFromCurrentState | .TransitionCrossDissolve | .AllowAnimatedContent, animations: {
self.textForPlayer.addAttribute(
NSForegroundColorAttributeName,
value: UIColor.greenColor(),
range: nsRangeOfTextShown)
self.textViewForPlayer.attributedText = self.textForPlayer
}, completion: { finished in
})
println("FINISHED2")
}
)
答案 0 :(得分:1)
如果我理解正确,并且您希望每个字母都能完成自己的动画,无论用户是否输入了下一个字母,我建议您为每个动画字母单独制作一个视图。然后,在字母的完成块中,删除动画视图并将字母 - 静态 - 添加到UITextView。