SwiftUI 点击手势开始/结束操作

问题描述 投票:0回答:1

我尝试在点击手势开始和结束时添加操作,但它不起作用!并给出示例代码。

@State private var opacity = 1.0

var body: some View {
Image(systemName: "plus.square.on.square")
            .opacity(opacity)
            .onTapGesture {
                opacity = 0.2
            }
            .gesture(
            TapGesture()
                .onEnded({ _ in
                    opacity = 1.0
                })
            )
}
ios swiftui gesture swiftui-ontapgesture
1个回答
0
投票

@TusharSharma 非常接近,除了使用

onLongPressGesture
来精确检测手势的开始和结束时,只有
onPressingChanged
块很重要。

这是一个基于相关代码的工作示例:

var body: some View {
  Image(systemName: "plus.square.on.square")
    .opacity(opacity)
    .onLongPressGesture(minimumDuration: .infinity) {
      // Do nothing as an action, only the state change matters.
    } onPressingChanged: { starting in
      withAnimation { opacity = starting ? 0.2 : 1.0 }
    }
}
@State 
private var opacity = 1.0

withAnimation
部分是可选的,但我想你会想要它作为你的例子。)

minimumDuration: .infinity
当用户按住按键时,在整个持续时间内“保持”不透明度为 0.2。

© www.soinside.com 2019 - 2024. All rights reserved.