检测到长按手势并停止时如何运行功能?

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")
                        
                    
            )

【讨论】:

以上是关于检测到长按手势并停止时如何运行功能?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以检测到长按 Android 中的应用程序图标?

是否可以在 appwidget 中检测到长按?

uiimageview的长按手势和移动?

如何检测由滑动触发的后退导航并在iOS上将其停止?

一起识别长按和平移手势识别器

Xcode,Swift:如何检测链接点击并停止重定向 Safari?