Мой код, приведенный ниже, настроен так, что я могу нажать и удерживать кнопку, чтобы вызвать действие, а затем остановить это действие при снятии блокировки. Как я могу помешать пользователю запускать жест несколько раз разными прикосновениями / пальцами? В UIKit вы можете просто отключить мультитач для элемента, но я не смог найти эквивалентный синтаксис для SwiftUI.
struct playButton: View {
@EnvironmentObject var settings: TestParameters
@State var isDown: Bool = false
var db: Double
var dbString: String
var body: some View {
let g = DragGesture(minimumDistance: 0, coordinateSpace: .local).onChanged({
print("DOWN: \($0)")
self.isDown = true
}).onEnded({
print("UP: \($0)")
self.isDown = false
})
return ZStack{
Rectangle()
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
.gesture(g)
.foregroundColor(isDown ? Color.init(hex: "6ca659"): Color.init(hex: "666699"))
Text(dbString)
.fontWeight(.bold)
.foregroundColor(Color.white)
.multilineTextAlignment(.center)
}
}
}