OnLongPressGesture 释放动作 (SwiftUI)

Posted

技术标签:

【中文标题】OnLongPressGesture 释放动作 (SwiftUI)【英文标题】:OnLongPressGesture release action (SwiftUI) 【发布时间】:2021-05-19 15:04:34 【问题描述】:

我看到有一个 .onLongPressGesture(minimumDuration:maximumDistance:pressing:perform:)。

但是没有足够的文档让我了解当用户释放按钮时如何执行操作。

了解我在说什么的一个很好的例子是当您按住一个按钮开始录制视频并松开以停止录制。

.onLongPressGesture(minimumDuration: 0.5, maximumDistance: 100, pressing: , perform:  )

【问题讨论】:

如果除了onLongPressGesture 之外,您只需将onTapGesture 添加到Button 会怎样?另外,我相信label 参数是Label,而不是字符串。我相信您正在寻找Button(_:action:) 这是否回答了您的问题***.com/a/60465960/12299030?还是这个***.com/a/61723144/12299030? 看看这个:***.com/a/61784292/14351818 @West1 与问题无关 @BestFromAbove 当我发布它时它肯定是相关的(在你编辑你的问题以排除你对Button的错误使用之前)。 【参考方案1】:

解决办法是像这样调用标识符。

    创建了一个状态来跟踪用户是否按下了按钮
@State var hasPressed = false
    在 press 参数上,根据用户是否按下按钮,使用状态执行操作。
.onLongPressGesture(minimumDuration: 0.5, maximumDistance: 100, pressing: 
                            pressing in
                            self.hasPressed = pressing
                            if pressing action1
                            if !pressing action2
                        , perform: )

【讨论】:

以上是关于OnLongPressGesture 释放动作 (SwiftUI)的主要内容,如果未能解决你的问题,请参考以下文章

onTapGesture 和 onLongPressGesture 没有响应

如何以编程方式发送 ONLongPressGesture?

在swiftUI中捕获onLongPressGesture的touchDown位置?

onLongPressGesture 使列表项在 SwiftUI 中不可滚动

ONLongPressGesture to Touches Moved in subview

具有按住动作和释放动作的 UIButton