相关疑难解决方法(0)

在SwiftUI中向ScrollView内的View添加拖动手势会阻止滚动

所以我有一些ScrollView看法:

    ScrollView {
        ForEach(cities) { city in
            NavigationLink(destination: ...) {
                CityRow(city: city)
            }
            .buttonStyle(BackgroundButtonStyle())
        }
    }
Run Code Online (Sandbox Code Playgroud)

在每个视图中,我都有一个拖动手势:

    let drag = DragGesture()
        .updating($gestureState) { value, gestureState, _ in
            // ...
        }
        .onEnded { value in
            // ...
        }
Run Code Online (Sandbox Code Playgroud)

我分配给视图的一部分:

    ZStack(alignment: .leading) {
        HStack {
            // ...
        }
        HStack {
            // ...
        }
        .gesture(drag)
    }
Run Code Online (Sandbox Code Playgroud)

一旦我附加了手势,就ScrollView停止滚动。使其滚动的唯一方法是从没有手势的部分开始滚动。我如何避免这种情况并使两者一起工作。在UIKit中,就像trueshouldRecognizeSimultaneouslyWithmethod中指定一样简单。我如何在SwiftUI中拥有相同的功能?

在SwiftUI中,我尝试使用.simultaneousGesture(drag)和附加手势.highPriorityGesture(drag)-它们的工作原理都与相同.gesture(drag)。我还尝试GestureMaskincluding:参数提供所有可能的静态值-我可以滚动工作,也可以拖动手势工作。从来没有两个。

这是我使用拖动手势的目的: 在此处输入图片说明

ios13 swiftui

9
推荐指数
6
解决办法
1273
查看次数

标签 统计

ios13 ×1

swiftui ×1