一尘不染

Swift3 iOS-如何使UITapGestureRecognizer触发功能

swift

我试图将一个添加UITapGesture到UIButton,以便在点击时将触发一个功能。我正在使用,Swift 3并出现一些错误:

由于未捕获的异常’NSInvalidArgumentException’而终止应用程序,原因:’-[[SwiftRunner.ViewController
tapBlurButton]:无法识别的选择器已发送到实例0x149e07610’

这大致就是我所拥有的:

// Swift 3
import UIKit
class ViewController {

   @IBOutlet weak var qsBlurButton: UIButton!

   override func viewDidLoad() {
      super.viewDidLoad()

      let tapGesture = UITapGestureRecognizer(target: self, action: Selector(("tapBlurButton")))
      qsBlurButton.addGestureRecognizer(tapGesture)
   }

   func tapBlurButton(sender: UITapGestureRecognizer) {
      print("Please Help!")
   }
}

阅读 833

收藏
2020-07-07

共1个答案

一尘不染

从您的代码中,您正在使用swift 3.0,因此请selector像这样更改语法

let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.tapBlurButton(_:)))

和你这样的功能

func tapBlurButton(_ sender: UITapGestureRecognizer) {
    print("Please Help!")
}

编辑:

不知道您正在使用带有点击手势的按钮,而不是使用内置方法addTarget来创建按钮,而无需像这样创建点击手势

qsBlurButton.addTarget(self, action: #selector(self.tapBlurButton(_:)), forControlEvents: .TouchUpInside)

func tapBlurButton(_ sender: UIButton) {
    print("Please Help!")
}
2020-07-07