使用 Swift 在单个 UIView 上同时进行多个动画

Multiple Simultaneous Animations on Single UIView using Swift

我已经使用 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")
    }
)

如果我理解正确,并且您希望每个字母都完成自己的动画,而不管用户是否键入了下一个字母,我建议您为每个动画字母制作一个单独的视图。然后,在字母的完成块中,删除动画视图并将字母静态添加到 UITextView。