SwiftUI 100 레시피/Gestures

SwiftUI Gestures - 이미지 드래그

tonylee9239 2022. 6. 20. 12:19

이미지를 드래그하고 화면의 특정지역으로 드래그 했을때 경고표시 나게 하는 방법

 

import SwiftUI

 

struct ContentView: View {

    

    @State private var position = CGPoint(x: 100, y:100)

    let bounds = UIScreen.main.bounds

    @State private var danger : Bool = false

    

    var body: some View {

        VStack{

            Image("Image")

                .resizable()

                .frame(maxWidth: 100, maxHeight: 100)

                .zIndex(1.0)

                .position(position)

                .gesture(DragGesture()

                    .onChanged({(value) in

                        position = value.location

                        

                        if position.y > bounds.height/2 {

                            danger = true

                        } else {

                            danger = false

                        }

                        

                    })

                    .onEnded({(value) in

                        

                    })

                )

            

            HStack{

                Text("Danger")

            }.frame(maxWidth: .infinity, maxHeight: .infinity)

                .background(danger ? Color.red: Color.blue)

        }

    }

}

 

struct ContentView_Previews: PreviewProvider {

    static var previews: some View {

        ContentView()

    }

}

 

원래 이미지
드래그한 이미지
특정범위로 이미지를 드래그하면 경고색으로 표시