在我的主窗口的 Root View Controller 类中,我设置了一个 UITapGestureRecognizer 属性。在调用重写的 viewDidLoad 函数期间,我已通过 addGestureRecognizer 方法将此属性添加到图像属性。我还将 image.isUserInteractionEnabled 设置为 true。
override func viewDidLoad() {
image.addGestureRecognizer(tap)
image.isUserInteractionEnabled = true
self.view.addSubview(image)
}
var tap = UITapGestureRecognizer(target: self, action: #selector(imagePressed(_ :)))
遗憾的是,这不会导致在运行时调用 imagePressed()。令我困惑的是以下代码产生了预期的结果。
override func viewDidLoad() {
var tap = UITapGestureRecognizer(target: self, action:#selector(imagePressed(_ :)))
image.addGestureRecognizer(tap)
image.isUserInteractionEnabled = true
self.view.addSubview(image)
}
所以我的问题是,为什么在第一种情况下没有调用 UITapGestureRecognizer 的选择器?
使用 Swift 3 和 Xcode 8.2.1
最佳答案
我认为这里的问题是 addGestureRecognizer
。
尝试将您的 viewDidLoad
更改为:
override func viewDidLoad() {
var tap = UITapGestureRecognizer(target: self, action:#selector(imagePressed(_ :)))
image.isUserInteractionEnabled = true
self.view.addSubview(image)
image.addGestureRecognizer(tapGesture)
}
关于ios - 未调用 UITapGestureRecognizer 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43359378/