如何在检测到长按手势并停止时 运行 起作用?
How to run function when long press gesture detected and stopped?
我想实现以下示例:用户需要按下一个按钮至少 0.3 秒,此后录音开始,用户松开按钮后录音停止。
我的解决方案是:
Image(systemName: "mic.circle")
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 70)
.foregroundColor(Color.blue)
.onLongPressGesture(minimumDuration: 0.3){
print("start recording...")
}
当用户停止按下按钮时,如何实现该功能?
我可以解决我的问题,希望对你们中的一些人有用:
@State private var isPressingDown: Bool = false
Image(systemName: "mic.circle")
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 70)
.foregroundColor(Color.blue)
.onLongPressGesture(minimumDuration: 0.3){
self.isPressingDown = true
print("started")
}
.simultaneousGesture(
DragGesture(minimumDistance: 0)
.onEnded{ _ in
if self.isPressingDown{
self.isPressingDown = false
print("ended")
}
}
)
我想实现以下示例:用户需要按下一个按钮至少 0.3 秒,此后录音开始,用户松开按钮后录音停止。
我的解决方案是:
Image(systemName: "mic.circle")
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 70)
.foregroundColor(Color.blue)
.onLongPressGesture(minimumDuration: 0.3){
print("start recording...")
}
当用户停止按下按钮时,如何实现该功能?
我可以解决我的问题,希望对你们中的一些人有用:
@State private var isPressingDown: Bool = false
Image(systemName: "mic.circle")
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 70)
.foregroundColor(Color.blue)
.onLongPressGesture(minimumDuration: 0.3){
self.isPressingDown = true
print("started")
}
.simultaneousGesture(
DragGesture(minimumDistance: 0)
.onEnded{ _ in
if self.isPressingDown{
self.isPressingDown = false
print("ended")
}
}
)