标题说明了一切:)
我在dragGesture
中有一个scrollview
。我可以通过在拖动前组合一个longpressGesture
来解决这个问题,从而在用户滚动时不会意外激活该按钮。但是,我想在长按开始后添加一些面纱线索,以使用户知道如果您长按此东西是有效的。
这是我的代码,很标准。我找不到长按的开始事件。
.frame(maxWidth: .infinity).background(Color .white)
.onTapGesture {}
.gesture(
LongPressGesture(minimumDuration: self.minimuDuration, maximumDistance: 0)
.updating(self.$isLongPressed) { value, state, transcation in
state = value
}.sequenced(before:
DragGesture(minimumDistance: 0, coordinateSpace: .global)
.onEnded({ (value) in })
.onChanged { value in }
)
)
答案 0 :(得分:1)
只要检测到您按下长按手势,就会触发self.$isLongPressed
,因此这是视觉反馈动画的标记。例如:
.frame(maxWidth: .infinity).background(Color.white.opacity(self.isLongPressed ? 0.5 : 1.0)
.animation(.default)
.onTapGesture {}
.gesture(
LongPressGesture(minimumDuration: self.minimuDuration, maximumDistance: 0)
.updating(self.$isLongPressed) { value, state, transcation in
...