Computer >> 컴퓨터 >  >> 프로그래밍 >> iOS

Swift로 iOS 기기에서 터치 위치(좌표) 가져오는 방법

이번 포스트에서는 Swift를 사용해 iOS 기기 화면의 터치 위치를 얻는 방법을 단계별로 알아보겠습니다.

그럼 바로 시작해 보겠습니다.

1단계: 프로젝트 생성

Xcode를 실행한 뒤 New Project → Single View Application을 선택하고, 프로젝트 이름을 "TouchMe"로 지정합니다.

2단계: 레이블 추가

Main.storyboard를 열고 아래 그림과 같이 레이블(Label) 하나를 추가합니다. 이 레이블에 터치된 위치의 좌표를 표시하게 됩니다.

Swift로 iOS 기기에서 터치 위치(좌표) 가져오는 방법

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 좌표가 아래와 같이 표시되는 것을 확인할 수 있습니다.

Swift로 iOS 기기에서 터치 위치(좌표) 가져오는 방법