私が取り組んでいるアプリにスコアカウンターがあります。単に数値を変更するのではなく、古いスコアがスケールアップしてフェードアウトする間に、新しいスコアをフェードインしたいと思います。animateWithDuration - UITextFieldのFadeIn/FadeOutアニメーション
次は私が得たほど近い:
UIView.animateWithDuration(0.6, delay: 0.0, options: UIViewAnimationOptions.CurveEaseOut, animations: {
self.scoreOutlet.text = "\(self.numberFormatter.stringFromNumber(self.score)!)"
self.scoreOutlet.transform = CGAffineTransformMakeScale(1.5, 1.5)
self.scoreOutlet.alpha = 0.0
}) { (_) in
UIView.animateWithDuration(0.0, animations: {
self.scoreOutlet.transform = CGAffineTransformMakeScale(1.0, 1.0)
self.scoreOutlet.alpha = 1.0
})
}
私はこれらが同時に起こるしたいと思います。私は、クロージャが最初のアニメーションの0.6秒後に発生したことを実現しますが、animateWithDurationブロックを入れ子にすることは、ここで最もクリーンなアプローチであるとは思いませんでした。..
望ましい結果
20から25までのスコアが変更された場合: 25がフェードインしますが、同時に、20がフェードアウトし、大きくスケーリングされ、わずかに上に移動します。
ありがとうございました!これは、私が想像していたものに非常に近いものを作り出しました。 – Joe