Ios 如何在SwiftUI中同时合成3种不同的手势?

Ios 如何在SwiftUI中同时合成3种不同的手势?,ios,swiftui,Ios,Swiftui,试图在SwiftUI中同时合成3个手势,但SwiftUI的simultaneous手势()仅适用于2个手势 例如,我有一个基本视图,例如: struct myRect: View { var body: some View { Rectangle() .fill(Color.red) .frame(width: 200, height: 200) } } 我需要这个视图可以拖动、旋转和调整大小 我假设我需要使用Dr

试图在SwiftUI中同时合成3个手势,但SwiftUI的
simultaneous手势()
仅适用于2个手势

例如,我有一个基本视图,例如:

struct myRect: View {
    var body: some View {
        Rectangle()
            .fill(Color.red)
            .frame(width: 200, height: 200)
    }
}
我需要这个视图可以拖动、旋转和调整大小

我假设我需要使用
DragGesture()
旋转手势()
,和
放大手势()
。但是我被卡住了,因为
simultaneousposition()
最多只能接受2个手势。我如何才能让这3个手势在我的视图中工作

编辑:

我应该明确指出,这些手势必须同时起作用。这与这里的问题一模一样:


然而,这是对UIKit的。是否可以在SwiftUI中执行此操作?

您的视图
myRect
可能与其他视图冲突。 我测试了
simultaneoussignature()
modifier,它可以按任意顺序使用三个手势,如blow:

struct myRect: View {
let rg = RotationGesture().onChanged({ a in
    print("Angle = \(a.degrees)")
})
let dg = DragGesture(minimumDistance: 1, coordinateSpace: .local).onChanged({ v in
    print("Translate = \(v.translation.width)")
})
let mg = MagnificationGesture().onChanged({ s in
    print("scale = \(s)")
})
var body: some View {
    Rectangle()
        .fill(Color.red)
        .frame(width: 200, height: 200)
        .simultaneousGesture(rg)
        .simultaneousGesture(mg)
        .simultaneousGesture(dg)
}
}

不幸的是,这些不能同时工作。通过这个实现,我可以同时调整大小和旋转,但不能调整大小、旋转和拖动。我想要的功能与:@user12533955完全相同,请指定您的问题,哪一个手势不会给出输出?使用您的实现,当用户放大和旋转视图时,拖动不会给出输出。我想让他们同时工作。因此,用户可以同时放大和拖动、旋转和拖动,以及同时放大和旋转和拖动。看看我链接的stackoverflow帖子,他们解释了我想要的确切功能