如何为录制语音制作视觉弹跳圈
问题描述:
我想制作一个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))
动画太静态,我需要更自然的反弹效果,我该怎么办?
谢谢!
答
.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大小,而不是不断地更新。这将允许动画时间正确和平滑地执行,而不是严格地执行。
祝你好运。