2017-10-20 12 views
0

私は、録音の音量に基づいてUIView、円を作成したいと思います。私はこのレートを得るためにこのコードを持っています:録音音声のビジュアルバウンスサークルを作成する方法

recorder.updateMeters() 
let ALPHA = 0.05 
let peakPower = pow(10, (ALPHA * Double(recorder.peakPower(forChannel: 0)))) 

どうすればこのアニメーションを作ることができますか?私は、私は作る:

self.audioCircle.transform = CGAffineTransform(scaleX: 1+CGFloat(rate), y: 1+CGFloat(rate)) 

アニメーションがあまりにも静的で、私はどのように行うことができ、より自然なバウンス効果がありますか?

ありがとうございました!

答えて

0

.transformは、ビューのサイズを暗黙的にアニメーション化するものです。

その場合は、あなたが使用してみてください。

UIView.animate(withDuration: 0.5, delay: 0, usingSpringWithDamping: 0.75, initialSpringVelocity: 0, options: .curveEaseOut, animations: { 
    //update view 
    self.view.layoutIfNeeded() 
    }, completion: { (completed) in 
    //animation completed  
}) 

上記のアニメーションは、あなたのビューをアニメーション化するために使用したいものであるかもしれません。それは素晴らしいバウンス効果を与え、あなたはそれに応じてそれを調整するためにパラメータで遊ぶことができます。

しかし、入力の性質上、私はアニメーションの運賃の仕組みがわかりません。

絶え間なく頻繁にaudioCircleサイズを更新するのが最適かもしれません。これにより、アニメーション時間は厳密にはなく正確かつスムーズに実行されます。

幸運。

関連する問題