Ios 如何在SwiftUI中同时合成3种不同的手势?
试图在SwiftUI中同时合成3个手势,但SwiftUI的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
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帖子,他们解释了我想要的确切功能