Swiftui 快捷界面:按下按钮时的操作
我正在尝试实现一个长按按钮,它改变了我只在按下按钮时使用的SF符号。我也不确定我应该在哪里使用这些图像。问题是当I停止按下时,按钮被触发。有没有办法不激活它(按下时除外) 我要找的是一个按钮: 按住2秒后,符号会改变,2秒后,松开后,符号会回到初始状态Swiftui 快捷界面:按下按钮时的操作,swiftui,Swiftui,我正在尝试实现一个长按按钮,它改变了我只在按下按钮时使用的SF符号。我也不确定我应该在哪里使用这些图像。问题是当I停止按下时,按钮被触发。有没有办法不激活它(按下时除外) 我要找的是一个按钮: 按住2秒后,符号会改变,2秒后,松开后,符号会回到初始状态 struct heartButton: View { @State private var isDetectingPress = false var body: some View { VStack { Image(s
struct heartButton: View {
@State private var isDetectingPress = false
var body: some View {
VStack {
Image(systemName: isDetectingPress ? "heart.fill" : "heart").font(.system(size: 16, weight: .regular))
Button(action: {
self.isDetectingPress.toggle()
}) {
Text("Button")
}
}
}
这里有一个解决方案。使用Xcode 11.5b进行测试
struct heartButton: View {
@GestureState private var isDetectingPress = false
var body: some View {
VStack {
Image(systemName: isDetectingPress ? "heart.fill" : "heart").font(.system(size: 16, weight: .regular))
Text("Press")
.gesture(LongPressGesture(minimumDuration: 2).sequenced(before: DragGesture(minimumDistance: 0, coordinateSpace: .local)).updating($isDetectingPress) { value, state, _ in
switch value {
case .second(true, nil):
state = true
default:
break
}
})
}
}
}