在 SwiftUI 中有条件地激活手势
Conditionnaly activate Gesture in SwiftUI
我正在寻找一种方法来 able/disable DragGesture 或根据 @State private var isDraggable:Bool
在 swiftUI 中有条件地将 Gesture 传递给 MyView()
由于 MyView() 有一些参数在 Appear() 和 Disappear() 上被重置,我不能只做
If isDraggable { MyView() }else{MyView().gesture() }
DragGesture 在我的代码中是如何实现的
MyView().gesture(DragGesture(minimumDistance: 0) .onChanged { value in} )
您可以使用GestureMask
并在手势之间进行选择
您可以使用 .all、.none、.subviews 或 .gesture
.gesture
在你的例子中是 DragGesture
.
.subviews
将允许 MyView
内的任何手势
.all
是 DragGesture
和 MyView
内的任何手势(这是默认值)
import SwiftUI
struct ConditionalGestureView: View {
@State var activeGestures: GestureMask = .subviews
var body: some View {
MyView()
.gesture(DragGesture(), including: activeGestures)
}
}
根据您的用例更改 activeGestures
变量
我正在寻找一种方法来 able/disable DragGesture 或根据 @State private var isDraggable:Bool
在 swiftUI 中有条件地将 Gesture 传递给 MyView()由于 MyView() 有一些参数在 Appear() 和 Disappear() 上被重置,我不能只做
If isDraggable { MyView() }else{MyView().gesture() }
DragGesture 在我的代码中是如何实现的
MyView().gesture(DragGesture(minimumDistance: 0) .onChanged { value in} )
您可以使用GestureMask
并在手势之间进行选择
您可以使用 .all、.none、.subviews 或 .gesture
.gesture
在你的例子中是 DragGesture
.
.subviews
将允许 MyView
.all
是 DragGesture
和 MyView
内的任何手势(这是默认值)
import SwiftUI
struct ConditionalGestureView: View {
@State var activeGestures: GestureMask = .subviews
var body: some View {
MyView()
.gesture(DragGesture(), including: activeGestures)
}
}
根据您的用例更改 activeGestures
变量