【发布时间】:2021-07-08 03:40:20
【问题描述】:
我想知道,为什么UITapGestureRecognizer 不起作用,如果我们让它成为一个类的成员变量?
不工作。点击时不调用 hideKeyboard
class TabInfoSettingsCell: UICollectionViewCell {
private let hideKeyboardTapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(hideKeyboard))
override func awakeFromNib() {
super.awakeFromNib()
self.isUserInteractionEnabled = true
self.addGestureRecognizer(hideKeyboardTapGestureRecognizer)
}
@objc private func hideKeyboard() {
print("hide keyboard")
}
工作
class TabInfoSettingsCell: UICollectionViewCell {
override func awakeFromNib() {
super.awakeFromNib()
self.isUserInteractionEnabled = true
let hideKeyboardTapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(hideKeyboard))
self.addGestureRecognizer(hideKeyboardTapGestureRecognizer)
}
@objc private func hideKeyboard() {
print("hide keyboard")
}
你知道背后的原因是什么,为什么 UITapGestureRecognizer 如果我们让它成为一个类的成员变量就不起作用?
【问题讨论】:
-
见this。
self并不意味着你认为它在变量初始化器中的作用。