Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save wzbozon/c3354a5b46ca2520910a43fefc845443 to your computer and use it in GitHub Desktop.
Save wzbozon/c3354a5b46ca2520910a43fefc845443 to your computer and use it in GitHub Desktop.
PressActions modifier - Handle press and release events in SwiftUI
struct PressActions: ViewModifier {
var onPress: () -> Void
var onRelease: () -> Void
func body(content: Content) -> some View {
content
.simultaneousGesture(
DragGesture(minimumDistance: 0)
.onChanged({ _ in
onPress()
})
.onEnded({ _ in
onRelease()
})
)
}
}
extension View {
func pressAction(onPress: @escaping (() -> Void), onRelease: @escaping (() -> Void)) -> some View {
modifier(PressActions(onPress: {
onPress()
}, onRelease: {
onRelease()
}))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment