SwiftUIにボタンがあり、「ボタンをタップ」(通常のクリック/タップ)と「長押し」で異なるアクションを実行できるようにしたいと考えています。
SwiftUIでそれは可能ですか?
ここに私が今持っているボタンの簡単なコードがあります(「通常の」タップ/タッチケースのみを処理します)。
Button(action: {self.BLEinfo.startScan() }) {
Text("Scan")
} .disabled(self.BLEinfo.isScanning)
「longPressジェスチャー」を追加しようとしましたが、それでも「通常/短い」クリックのみが「実行」されます。これは私が試したコードです:
Button(action: {self.BLEinfo.startScan() }) {
Text("Scan")
.fontWeight(.regular)
.font(.body)
.gesture(
LongPressGesture(minimumDuration: 2)
.onEnded { _ in
print("Pressed!")
}
)
}
ありがとう!
ジェラール
onLongPressGesture()
beforeonTapGesture()
を使用すると、後者は無視されます。