我有一个SwiftUI按钮,最初我在操作区域内处理按钮的按下,但是现在我想更改按钮,以便我也可以长按它。为此,我现在必须创建一个onTapGesture和onLongPressGesture。在Watch上测试我的应用程序后,我意识到按钮对onTapGesture和onLongpressGesture的响应较弱。我可以清楚地看到该按钮被按下,但是它有时仅处理操作1和操作2。是否有人有类似的经验,解决方法是什么?
Button(action: {
// action 1
}) {
Image(systemName: "checkmark")
.onTapGesture (count:1){
// action 1
}
.onLongPressGesture {
// action 2
}
}
答案 0 :(得分:0)
不要使用按钮。
Image(systemName: "checkmark")
.onTapGesture {
// action 1
}
.onLongPressGesture {
// action 2
}
或在按钮上添加同时手势
Button(action: {
print("tap")
}) {
Image(systemName: "trash")
}.simultaneousGesture(LongPressGesture(minimumDuration: 1, maximumDistance: 10).onEnded({ (b) in
print("long")
}))
警告,每次长事件之后都将点击“额外” ...
您可以玩手势面具,说
Button(action: {
print("tap")
}) {
Image(systemName: "trash")
}.simultaneousGesture(LongPressGesture().onChanged({ (b) in
print("long change", b)
})
.onEnded({ (b) in
print("long end")
}), including: .gesture)
打印
long change true // on tap
或
// on long press
long change true
long end
但不能“点击”!