#SimultaneousGesture
SwiftUIで複数のジェスチャーを実装する方法がわからなかったので、備忘録として残しておきます。
複数ジェスチャーの実装をするにはSimultaneousGestureを実装する必要があります。
以下はオブジェクトの拡大・縮小と移動の2つのジェスチャーを設定したコードになります。
SimultaneousGestureの引数に設定したいGestureを設定することで、複数ジェスチャーの実装ができます。
let magnificationGesture = MagnificationGesture()
.onChanged { scale = $0 * initialScale }
.onEnded{ _ in initialScale = scale }
let dragGesture = DragGesture()
.onChanged { offset = CGSize(width: initialOffset.width + $0.translation.width, height: initialOffset.height + $0.translation.height) }
.onEnded{ _ in initialOffset = offset }
RoundRectangle()
.gesture(SimultaneousGesture(magnificationGesture, dragGesture))
#参考
https://software.small-desk.com/development/2021/06/28/swiftui-pinch-and-drag/