Swift3 iOS - 如何使 UITapGestureRecognizer 触发功能 [英] Swift3 iOS - How to make UITapGestureRecognizer trigger function
问题描述
我正在尝试将 UITapGesture
添加到 UIButton,以便在点击时触发功能.我正在使用 Swift 3
并且遇到一些错误:
I am trying to add a UITapGesture
to a UIButton so it will trigger a function when tapped. I am using Swift 3
and is getting some error:
由于未捕获的异常NSInvalidArgumentException"而终止应用,原因:-[SwiftRunner.ViewController tapBlurButton]:无法识别的选择器发送到实例 0x149e07610'
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SwiftRunner.ViewController tapBlurButton]: unrecognized selector sent to instance 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!")
}
}
推荐答案
从你的代码中你使用的是 swift 3.0 所以像这样改变你的 selector
语法
From your code you are using swift 3.0 so change your selector
syntax like this
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.tapBlurButton(_:)))
和你这样的功能
func tapBlurButton(_ sender: UITapGestureRecognizer) {
print("Please Help!")
}
不知道您正在使用带有点击手势的按钮,而不是使用内置方法 addTarget
按钮无需像这样为其创建点击手势
Not idea that you are using button with tap gesture, instead of that use inbuilt method addTarget
for button no need to create tap gesture for it like this
qsBlurButton.addTarget(self, action: #selector(self.tapBlurButton(_:)), forControlEvents: .TouchUpInside)
func tapBlurButton(_ sender: UIButton) {
print("Please Help!")
}
这篇关于Swift3 iOS - 如何使 UITapGestureRecognizer 触发功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!