반응형

 

Hacking with Swift 사이트의 강좌 번역본입니다.

 

[원문 : https://www.hackingwithswift.com/quick-start/swiftui/how-to-add-a-gesture-recognizer-to-a-view]

 

How to add a gesture recognizer to a view

 

모든 SwiftUI 뷰는 제스쳐 인식을 붙일수 있고, 해당 제스쳐 인식은 인식이 활성화될때 실행될 클로져를 붙일 수 있습니다. 

 

작업해야 할 몇가지 제스쳐 인식이 있고, 시작하는데 도움이 되는 몇가지 코드 샘플을 제공할 것입니다 - 어떻게 비슷한지 보게 될 것입니다.

 

우선, TapGesture입니다. 이것을 만들때 제스쳐를 시작하는데 얼마나 탭을 눌러야 하는지 지정할 수 있고, 제스쳐가 발생할때 실행할 onEnded 클로져를 붙입니다. 예를들어, 탭할때마다 커지는 이미지를 만듭니다.

struct ContentView: View {
    @State private var scale: CGFloat = 1.0

    var body: some View {
        Image("example-image")
            .scaleEffect(scale)

            .gesture(
                TapGesture()
                    .onEnded { _ in
                        self.scale += 0.1
                    }
            )
    }
}

 

두번째, 사용자가 지정한 시간만큼 뷰를 누르고 있을때 LongPressGesture 인식합니다. 최소 2초를 누르고 있을때 메시지를 출력하는 이미지 뷰를 만듭니다.

Image("example-image")
    .gesture(
        LongPressGesture(minimumDuration: 2)
            .onEnded { _ in
                print("Pressed!")
        }
    )

 

마지막으로, 사용자가 뷰를 누르고 특정 거리만큼 이동시킬때 DragGesture를 시작합니다. 최소 50 포인트를 이동시킬때 드래그 제스쳐를 시작하는 이미지를 만듭니다.

Image("example-image")
    .gesture(
        DragGesture(minimumDistance: 50)
            .onEnded { _ in
                print("Dragged!")
            }
    )

 

반응형
Posted by 까칠코더
,