【App Dev-心得筆記】#5 利用AVFoundation 發聲並結合UI介面-Singing! DouDou

在storyboard內建出基本UI介面

運用的元件:
Image View, Label, Text View, Slider, Button

在ViewController裡導入IBOutlet

將會用到的元件依序命名導入IBOutlet

導入IBAction 並建立Fouction

為了能夠讓app發聲,匯入AVFoundation,並且建立IBAction在button上

設定Slider動化效果

透過Slider的value去控制Speed, Tone的透明度,豆豆眼睛的位置。

@IBAction func changeSpeed(_ sender: Any) {let movePositionX = CGFloat(singSpeed.value)leftEye.frame.origin.x = movePositionX*2 + 138rightEye.frame.origin.x = movePositionX*2 + 222if (singSpeed.value < 1.25 && singSpeed.value > 0.75 ){speed075X.alpha = 0.4speed05X.alpha = 0.4speed025X.alpha = 0.4speed1X.alpha = 1speed125X.alpha = 0.4speed15X.alpha = 0.4speed175X.alpha = 0.4}else if (singSpeed.value <= 0.75 && singSpeed.value > 0.5 ){speed075X.alpha = 1speed05X.alpha = 0.4speed025X.alpha = 0.4speed1X.alpha = 0.4speed125X.alpha = 0.4speed15X.alpha = 0.4speed175X.alpha = 0.4}else if (singSpeed.value <= 0.5 && singSpeed.value > 0.25 ){speed075X.alpha = 0.4speed05X.alpha = 1speed025X.alpha = 0.4speed1X.alpha = 0.4speed125X.alpha = 0.4speed15X.alpha = 0.4speed175X.alpha = 0.4}else if (singSpeed.value <= 0.25 ){speed075X.alpha = 0.4speed05X.alpha = 0.4speed025X.alpha = 1speed1X.alpha = 0.4speed125X.alpha = 0.4speed15X.alpha = 0.4speed175X.alpha = 0.4}else if (singSpeed.value < 1.5 && singSpeed.value >= 1.25 ){speed075X.alpha = 0.4speed05X.alpha = 0.4speed025X.alpha = 0.4speed1X.alpha = 0.4speed125X.alpha = 1speed15X.alpha = 0.4speed175X.alpha = 0.4}else if (singSpeed.value < 1.75 && singSpeed.value >= 1.5 ){speed075X.alpha = 0.4speed05X.alpha = 0.4speed025X.alpha = 0.4speed1X.alpha = 0.4speed125X.alpha = 0.4speed15X.alpha = 1speed175X.alpha = 0.4}else if (singSpeed.value >= 1.75 ){speed075X.alpha = 0.4speed025X.alpha = 0.4speed1X.alpha = 0.4speed125X.alpha = 0.4speed15X.alpha = 0.4speed175X.alpha = 1}}

設定點擊背景隱藏鍵盤

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {self.view.endEditing(true)}

--

--