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

时间:2015-01-31 07:58:14

标签: ios swift uiviewanimation

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

1 个答案:

答案 0 :(得分:1)

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