如何在长按手势开始时开始播放动画?

时间:2020-04-21 20:37:25

标签: swiftui

标题说明了一切:)

我在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 }
    )

)

1 个答案:

答案 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
    ...