【发布时间】:2020-11-23 08:22:20
【问题描述】:
我想在我的 ios swift 应用程序的自定义 .xib 文件视图中添加一个标签识别器。以下是 .xib 文件所有者类的代码:
import UIKit
class WordLabel: UILabel {
@IBOutlet weak var wordLabel: UILabel!
@IBOutlet var wordFrame: UIView!
override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
//I added the tab recognizer here
wordLabel.isUserInteractionEnabled = true
let gestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(labelClicked(_:)))
wordLabel.addGestureRecognizer(gestureRecognizer)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
func commonInit() {
Bundle.main.loadNibNamed(K.wordLabelNibName, owner: self, options: nil)
addSubview(wordFrame)
wordFrame.frame = self.bounds
wordFrame.autoresizingMask = [.flexibleWidth, .flexibleHeight]
}
//should happen when label is tapped
@objc func labelClicked(_ sender: Any) {
print("UILabel clicked")
}
}
当我在手机模拟器上运行项目时,没有出现任何错误。
但是当我点击显示的标签时,消息没有打印到控制台上(这意味着操作没有被触发)。我做错了什么?
感谢您的帮助。
我的项目的github链接:
【问题讨论】:
-
在
commonInit()中添加手势识别器