CS/Mobile
UI Button - 비슷한 여러 버튼이 있을 때 Tag 기능으로 코드 라인 줄이기
esmJK
2019. 9. 8. 13:51
실로폰 앱을 만든다고 가정합니다.
이렇게 했을때 IBAction을 하나하나 다 설정해주어야 하느냐? 그건 아닙니다. 존재하는 버튼 모두를 하나의 IBAction에 연결한 다음 (이 경우에는 notePressed라는 함수가 호출되게 됩니다)
스토리보드에서 버튼을 누르고 화면의 오른쪽에 Attribute Inspector를 들어가줍니다. 우측 상단의 메뉴 중 왼쪽에서 네 번째입니다.
Attribute Inspector의 View 란에는 Tag라는 것을 입력할 수가 있는데요. 이 Tag기능이 있기 때문에 IBAction을 하나하나 설정해야 하는 수고로움을 덜을 수 있는것입니다. 각각에 실로폰 키에 1(보라색)부터 7(빨간색) 까지 Tag 숫자 입력을 해주면 본 기능을 쓸 수 있습니다
실제로 코드상에서 이 Tag를 접근해볼 수 있는 기능이 있습니다. ViewController.swift 파일에서 다음과 같은 코드를 써주시면 됩니다.
@IBAction func notePressed(_ sender: UIButton) {
print(sender.tag)
}
실제로 앱을 실행하여 실로폰을 클릭하였을 때 1 부터 7까지의 숫자가 출력되는 것을 볼 수 있으며, 이를 응용해 AVFoundations로 실제로 음이 재생되게끔 할 수 있어요!