swift - UILongPressGestureRecognizer 和 UITapGestureRecognizer

标签 swift tags uitapgesturerecognizer uilongpressgesturerecogni

我是 Swift 的新手,我很着迷于区分按钮的这两种手势的潜力。

我正在用 xCode 编写我的第一个应用程序,我即将得出结论。作为最后一步,我想根据长按或点击为按钮实现两种不同的操作。

我按如下方式构建了应用程序。我有几个按钮连接到一个 IBAction 并使用标签区分它们。

来到我需要长按操作的两个按钮之一的标签,我不知道如何继续。

你有什么建议吗? 非常感谢

func longTap() {
            if (resultDisplay.text != ""){
                storedVariableA = String(result)
                eraseAll()
            }
        }
        else if (sender.tag == 20) {
                    let longPressGesture = UILongPressGestureRecognizer(target: self, action: #selector(self.longTap(_:)))
                    longPressGesture.minimumPressDuration = 2 
                    sender.addGestureRecognizer(longPressGesture)



                }

最佳答案

您可以在您的 @IBAction 中检查您在 Storyboard 中或以编程方式提供的标签,请检查以下代码。

@IBAction func action(_ sender: UIButton) {

    if sender.tag == 22 { // check for your desired tag instead of "22"
        // add longpress gesture. on sender // sender represents your button.
        let longPressGesture = UILongPressGestureRecognizer(target: self, action: #selector(self.handleLongPressGesture(_:)))
        longPressGesture.minimumPressDuration = 2 // mention minimum press duration you want user to press.
        sender.addGestureRecognizer(longPressGesture)
    } else {

    }
}

关于swift - UILongPressGestureRecognizer 和 UITapGestureRecognizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44585220/

相关文章:

grails - 如何在带有if-else语句的grails中使用提交按钮?

ios - Apple iOS Development Guide 上应该没有问题的时候

ios - 快速翻转 View : issues with whole screen flipping + tap gesture only works twice

swift - FirebaseUI Auth Clang 错误与 TwitterKit

swift:递归动画

ios - Xcode - 链接器命令失败,退出代码为 1

iphone - 使用标签/UILabels/UIViews

git - 标记提交以在 Git 中对它们进行分组

ios - 发送到实例 Swift 3 的无法识别的选择器

swift - 为什么在将 8 位二进制值分配给 Int8 类型的 var 时,Swift 语言会发生溢出?