Fix a regression where you can't scroll the timeline on iOS 17 (#3320)

It was caused by a fix for the same bug on iOS 18 🤦‍♂️
This commit is contained in:
Doug 2024-09-23 19:00:05 +01:00 committed by GitHub
parent 69009a899a
commit 83b0670503
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -31,7 +31,7 @@ struct SwipeRightAction<Label: View>: ViewModifier {
content
.offset(x: xOffset, y: 0.0)
.animation(.interactiveSpring().speed(0.5), value: xOffset)
.simultaneousGesture(gesture)
.timelineGesture(gesture)
.onChange(of: dragGestureActive) { value in
if value == true {
if shouldStartAction() {
@ -113,6 +113,18 @@ extension View {
action: @escaping () -> Void) -> some View {
modifier(SwipeRightAction(label: label, shouldStartAction: shouldStartAction, action: action))
}
@ViewBuilder
fileprivate func timelineGesture(_ gesture: some Gesture) -> some View {
if #available(iOS 18.0, *) {
// iOS 18 has a bug https://forums.developer.apple.com/forums/thread/760035 and you
// can't scroll the timeline when `gesture` is used.
simultaneousGesture(gesture)
} else {
// Equally on iOS 17 you can't scroll the timeline when `simultaneousGesture` is used.
self.gesture(gesture)
}
}
}
struct SwipeRightAction_Previews: PreviewProvider, TestablePreview {