SwiftUI view modifiers to use gestures inside ScrollView
and List
.
Sequences a gesture with a long press and attaches the result to the view, which results in the gesture only receiving events after the long press succeeds.
Use this view modifier instead of .gesture()
to delay a gesture:
ScrollView {
FooView()
.delayedGesture(someGesture, delay: 0.2)
}
gesture
: A gesture to attach to the view.mask
: A value that controls how adding this gesture to the view affects other gestures recognized by the view and its subviews.delay
: A value that controls the duration of the long press that must elapse before the gesture can be recognized by the view.action
: An action to perform if a tap gesture is recognized before the long press can be recognized by the view.
Attaches a long press gesture to the view, which results in gestures with a lower precedence only receiving events after the long press succeeds.
Use this view modifier before .gesture()
to delay a gesture:
ScrollView {
FooView()
.delayedInput(delay: 0.2)
.gesture(someGesture)
}
delay
: A value that controls the duration of the long press that must elapse before lower precedence gestures can be recognized by the view.action
: An action to perform if a tap gesture is recognized before the long press can be recognized by the view.
- iOS 14.0+ or watchOS 7.0+
- Xcode 12.0+
- Install with Swift Package Manager.
- Import
SwiftUIDelayedGesture
to start using.
@ciaranrobrien on Twitter.