I think I may have found a work around. If you use .updating instead. You can set a GestureState boolean to true. (IT HAS TO BE A GESTURESTATE) When you release that touch it automatically goes back to being false. All you have to do from there is create a View extension that triggers your desired action as a callback.

@GestureState private var triggered = false

// Code

.simultaneousGesture(

DragGesture(minimumDistance: 0)

.updating($triggered, body: { (value, state, transaction) in

state = true

})

)

.triggerThing {

triggered ? triggerOn() : triggerOff()

}

Founder of Polyhedra | Creator of FormKey and the Form Music Language | iOS Engineer | Designer | Compulsive Builder

Founder of Polyhedra | Creator of FormKey and the Form Music Language | iOS Engineer | Designer | Compulsive Builder