DragGesture正在取消SwiftUI中的长按手势

DragGesture正在取消SwiftUI中的长按手势,swiftui,swift5,Swiftui,Swift5,我正在寻找的行为是长按一个小图像,它会被放大,但当释放它应该再次变小 我能够成功地完成这个行为;然而,我遇到的问题是,当我按住鼠标后,我将手指从图像上移开,这样我可以放大查看图像,但这被检测为拖动手势,取消了我的行为 这是我的密码 import SwiftUI struct ContentView: View { @GestureState private var isPressingDown: Bool = false @State private var width:

我正在寻找的行为是长按一个小图像,它会被放大,但当释放它应该再次变小

我能够成功地完成这个行为;然而,我遇到的问题是,当我按住鼠标后,我将手指从图像上移开,这样我可以放大查看图像,但这被检测为拖动手势,取消了我的行为

这是我的密码

import SwiftUI


struct ContentView: View {
    @GestureState private var isPressingDown: Bool = false

    @State private var width: CGFloat = 64
    @State private var height: CGFloat = 64

    var body: some View {
        let longPress = LongPressGesture(minimumDuration: 0.2)
        let infiniteLongPress = LongPressGesture(minimumDuration: .infinity)
        let seq = longPress.sequenced(before: infiniteLongPress)
        let upd = seq.updating($isPressingDown) { value, state, transaction in
            switch value {
                case .second(true, nil):
                    state = true
                default:
                    break
            }
        }

        return ZStack{

            Color.black
                .opacity(self.isPressingDown ? 0.5 : 0)
                .edgesIgnoringSafeArea(.all)
                .animation(.spring())


                Image("icon")
                    .resizable()
                    .frame(width:self.isPressingDown ? self.width * 5 : self.width, height:self.isPressingDown ? self.height * 5 : self.height, alignment:.center)
                    .gesture(upd)
                    .cornerRadius(10)
                    .animation(.spring(dampingFraction: 0.65))


        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}


使用拖动手势作为第二个手势。测试并使用Xcode 11.2

。。。
让长按=长按手势(最小持续时间:0.2)
让infiniteLongPress=DragGesture(最小距离:0,坐标空间:。本地)//在这里!
...

提供的快照不可编译。你能提供最少的可测试的演示代码吗?我编辑了我的问题,并包含了能够运行演示的完整代码