본 글에서는 화면에서 Object를 터치 했을 때, Event 처리 방법에 대해 다룹니다.
UITapGestureRecognizer
UIKit에서 화면 터치 이벤트를 제어하는 여러 방법 중, UITapGestureRecognizer를 사용하는 방법에 대해 다룹니다.
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var preview: UIView!
override func viewDidLoad() {
super.viewDidLoad()
setTouchEvent()
}
func setTouchEvent() {
let uiTapGestureRecognizer: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(setTouchAction))
preview.addGestureRecognizer(uiTapGestureRecognizer)
}
@objc func setTouchAction(_ sender: UITapGestureRecognizer) {
preview.backgroundColor = UIColor.orange
}
}
Swift
복사
@objc와 #selector
Objective-C에서 selector는 메소드의 이름을 참조하는 타입입니다.
Swift에서는 위 selector를 구조체로 나타냅니다.
따라서 Swift에서 Run-time 상황에 Objective-C와 상호작용해야 할 때, @objc 키워드를 사용하여 함수를 작성할 수 있고, selector를 통해 해당 함수를 참조할 수 있습니다.