이번 포스트에서는 Swift를 사용해 iOS 기기 화면의 터치 위치를 얻는 방법을 단계별로 알아보겠습니다.
그럼 바로 시작해 보겠습니다.
1단계: 프로젝트 생성
Xcode를 실행한 뒤 New Project → Single View Application을 선택하고, 프로젝트 이름을 "TouchMe"로 지정합니다.
2단계: 레이블 추가
Main.storyboard를 열고 아래 그림과 같이 레이블(Label) 하나를 추가합니다. 이 레이블에 터치된 위치의 좌표를 표시하게 됩니다.

3단계: IBOutlet 연결
추가한 레이블에 대한 @IBOutlet을 생성하고 이름을 touchPositionLabel로 지정합니다.
4단계: touchesBegan 메서드 오버라이드
ViewController에서 touchesBegan(_:with:) 메서드를 오버라이드하여 뷰 내부의 터치 위치를 가져옵니다. 아래 코드처럼 작성하면 됩니다.
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = event?.allTouches?.first {
let loc:CGPoint = touch.location(in: touch.view)
self.touchPositionLabel.text = " X:\(loc.x) Y:\(loc.y) "
}
}코드 살펴보기
touchesBegan은 화면 어디든 손가락으로 터치하는 순간 호출됩니다. 이때 전달되는 터치 이벤트에는 현재 발생한 모든 터치 정보가 담겨 있습니다.
여기서는 event?.allTouches?.first를 사용해 첫 번째 터치 지점만 가져와 위치를 표시합니다.
event 매개변수는 옵셔널 타입이므로, if...let 바인딩을 통해 값을 안전하게 언래핑했습니다.
그다음 let loc:CGPoint = touch.location(in: touch.view) 구문으로 터치가 발생한 뷰를 기준으로 한 좌표를 얻습니다.
실행 결과 확인
프로젝트를 빌드하고 실행한 뒤 시뮬레이터나 실제 기기 화면을 터치해 보세요. 터치할 때마다 레이블에 해당 위치의 X, Y 좌표가 아래와 같이 표시되는 것을 확인할 수 있습니다.
