Old_SWIFT(221012)/기본이야기

제스처(addGestureRecognizer, UITapGestureRecognizer) 알아보기

KataRN 2022. 3. 17. 22:02
반응형

안녕하세요. KataRN입니다.

 

오늘은 UILabel을 버튼처럼 만들어보려합니다.

 

 

단순한 예제를 통해 알아보죠.

1. UILabel을 버튼처럼 누르게 만든다.

2. 누르면 함수를 호출하게 만든다.

 

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var aBtn: UILabel!
    @IBOutlet weak var aLabel: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()

        let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(change))
        aBtn.addGestureRecognizer(tapGestureRecognizer)
    }
    
    @objc func change() {
        aLabel.text = "버튼 눌렀습니다."
    }
}

 

우선 제스처를 만듭니다. UITapGestureReconizer(target: _, action: _)

taget은 self, action은 눌릴때 호출될 함수를 넣어줍니다.(함수는 텍스트 변경으로 하겠습니다.)

그리고 addGestureReconizer(함수)를 UILabel에 적용합니다.

 

준비 끝~ 빌드 ㄱㄱ~

 

 

????

 

혹시 저처럼 변화가 없는분 계신가요?

 

Label이 안눌리도록 설정되어있어서 그렇습니다.

해결방법은 2가지입니다.

 

스토리보드 or Code ~

 

1. 스토리보드 : Interaction의 User Interaction Enabled를 체크!

 

2. Code

// Enable User Interaction
aBtn.isUserInteractionEnabled = true

 

 다시 한번 빌드 ㄱㄱ~

 

 

오늘도 긴글 읽어주셔서 감사합니다.

 

반응형