2017-10-20 9 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 크기를 자주 업데이트하는 것이 좋습니다. 이렇게하면 애니메이션 시간이 고정적이 아닌 정확하고 원활하게 수행됩니다.

행운을 빈다.