こちらのリンクで紹介されている様な方法(以下のコード)で1つのimageに対してgestureを追加してdragする事はできるのですが、このviewを複数作ってそれらをそれぞれドラッグするにはどうすれば良いでしょうか?
やりたい事としては、
0. ボタンを押したら画面にimageが1つ追加される
0. そのimageにそれぞれdragのgestureを追加する
といった感じです。下記の例は1つのimageに対してpositionを設定してそれを変更していますが、imageが複数になったらpositionも複数用意し、それぞれのgestureがそのpositionを参照しなければならないと思いますが、どうすればよいでしょうか?また、ボタンを押した際にImageを追加する方法もいまいちよくわからないです。
ご回答いただければありがたいです!!
swiftUI
1struct ContentView: View { 2 3 @State var position: CGSize = CGSize(width: 200, height: 300) 4 5 var drag: some Gesture { 6 DragGesture() 7 .onChanged{ value in 8 self.position = CGSize( 9 width: value.startLocation.x 10 + value.translation.width, 11 height: value.startLocation.y 12 + value.translation.height 13 ) 14 } 15 .onEnded{ value in 16 self.position = CGSize( 17 width: value.startLocation.x 18 + value.translation.width, 19 height: value.startLocation.y 20 + value.translation.height 21 ) 22 } 23 24 } 25 26 var body: some View { 27 28 VStack { 29 Text("x: (position.width)") 30 Text("y: (position.height)") 31 32 Image("handbag") 33 .position(x: position.width, y: position.height) 34 .gesture(drag) 35 } 36 } 37}
あなたの回答
tips
プレビュー