Xylophone (2)

Harold's velog·2024년 2월 22일
0

Udemy

목록 보기
13/25
post-thumbnail

Xylophone에서 각 버튼을 눌렀을때 다음과같이
흐려졌다가 다시 밝아지게 해보자.

그리고 눌렀을때 Console에 start가 바로 출력이 되었다가. 0.2초 후에 End가 나오게 해보자.


before

import UIKit
import AVFoundation

class ViewController: UIViewController {
    
    var player: AVAudioPlayer!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @IBAction func keyPressed(_ sender: UIButton) {
        
        //print(sender.currentTitle)
        
        playSound(soundName: sender.currentTitle!)
    }
    
    func playSound(soundName: String) {
        let url = Bundle.main.url(forResource: soundName, withExtension: "wav")
        player = try! AVAudioPlayer(contentsOf: url!)
        
        player.play()
                
    }
}

after

import UIKit
import AVFoundation

class ViewController: UIViewController {
    
    var player: AVAudioPlayer!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @IBAction func keyPressed(_ sender: UIButton) {
        
        //print(sender.currentTitle)
        
        playSound(soundName: sender.currentTitle!)
        print("Start")
        sender.alpha = 0.5
        DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
            print("End")
            sender.alpha = 1.0
         }
    }
    
    func playSound(soundName: String) {
        let url = Bundle.main.url(forResource: soundName, withExtension: "wav")
        player = try! AVAudioPlayer(contentsOf: url!)
        player.play()
                
    }
    
    
}

DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
            print("End")
            sender.alpha = 1.0
         }

위와 같은 코드를 썼다. 0.2초뒤에 end를 출력하고 투명도(alpha)를 1.0으로 원복하는것이다.

profile
데일리 정리, 하루에 최소 하나의 글은 적도록 하자.

0개의 댓글

관련 채용 정보