ios - SwiftUI 中具有双重动作(点击和长按)的按钮
问题描述
是否可以在 SwiftUI 中设置一个带有点击操作和长按不同操作的按钮?
我试过这个:
Button(action: {
self.handleButtonTap()
})
{
Text("My nice button")
.foregroundColor(.primary)
}
.onLongPressGesture {
print("Long pressed!")
}
或代替:
.onLongPressGesture {
print("Long pressed!")
}
使用这个:
.gesture(longPress)
长按类似于:
var longPress: some Gesture {
....
}
但似乎没有任何效果。充其量我已经能够将长按手势附加到按钮的文本上,但即使在这种情况下,正常的点击也会停止工作。
任何好的建议将不胜感激。
解决方案
请检查这是否适合您:
Button("Button") {
print("tapped")
}
.simultaneousGesture(LongPressGesture().onEnded { _ in
print("long pressed")
})
请注意,在上述代码中,每次长按后都会执行点击操作。你可以用一个简单的 Bool 来处理这个问题。
推荐阅读
- c++ - 类字符串对象的概念
- android - 错误:不能从静态上下文 DatePickerDialog.show() 引用非静态方法 show();
- wordpress - 未定义索引:默认在 vendor/lucatume/wp-browser/src/Codeception/Module/WPDb.php:4178
- python - 谁能给我一个函数来计算python中的日期和时间?我在 WINDOWS 10
- sql - CASE SQL 语句不正确
- php - WooCommerce 结帐上的自定义隐藏字段未保存到用户元问题
- oracle - Oracle 的物化视图中的“USING”子句是什么?
- c - CYGWIN:为什么在 wchar 中声明 va_list
- c# - 当我更改表单的语言时,为什么按钮的位置和大小会发生变化?
- javascript - 在 SVG 路径上查找一个点