处理长时间点击手势时出现问题。我们的想法是在LazyVGrid
内部的同一视图上进行短时间和长时间的点击。长时间的点击时间似乎仍然是0.5
秒,这在我的情况下太长了。我试图将其减少到0.1
,但它似乎被忽略了
ScrollView {
Text("Greeting")
LazyVGrid(columns: ) {
ForEach(
models
) { model in
View(
model: pointModel
)
.onTapGesture {
model.didSelect()
}
.onLongPressGesture(minimumDuration: 0.1, perform: {
model.didLongTap()
})
}
}
字符串
我已经尝试了下一个解决方法:
1.更改长/单次点击的顺序,以便首先定义长。它会导致ScrollView
停止滚动
1.使用.gesture
添加手势,但未进行任何更改
我期望长按操作考虑到最小持续时间
1条答案
按热度按时间txu3uszq1#
使用
simultaneousGesture
:字符串
如果您按下的时间少于系统定义的持续时间(系统认为“点击”应该持续的最大持续时间),则会触发点击手势,如果您按下的时间至少为0.1秒,则会触发长按手势。
这意味着有时两个手势都会被触发-当您按下的时间小于系统定义的持续时间,但超过0.1秒时。
如果你不想这样,你也可以用
LongPressGesture
来实现点击手势,只需要很短的最小持续时间。然后,使用exclusively(before:)
处理冲突。型