检测到长按手势并停止时如何运行功能?
Posted
技术标签:
【中文标题】检测到长按手势并停止时如何运行功能?【英文标题】:How to run function when long press gesture detected and stopped? 【发布时间】:2021-02-25 10:29:09 【问题描述】:我想实现以下示例:用户需要按下一个按钮至少 0.3 秒长,然后录音开始,用户松开按钮后录音停止。
我的解决办法是:
Image(systemName: "mic.circle")
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 70)
.foregroundColor(Color.blue)
.onLongPressGesture(minimumDuration: 0.3)
print("start recording...")
当用户停止按下按钮时,如何实现该功能?
【问题讨论】:
这可能会有所帮助:***.com/a/59586294/14733292 这是否回答了您的问题***.com/a/61524230/12299030? 两种解决方案似乎都有帮助,但我不确定当用户释放按钮时如何运行函数? 【参考方案1】:我可以解决我的问题,希望它对你们中的一些人有用:
@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")
)
【讨论】:
以上是关于检测到长按手势并停止时如何运行功能?的主要内容,如果未能解决你的问题,请参考以下文章