我在导航项目标题视图中添加了标签和图像,如下所示 - https://stackoverflow.com/a/38548905/1373592
我添加了这三行代码,使标题可以点击。
....
let recognizer = UITapGestureRecognizer(target: self, action: #selector(MyViewController.titleTapped(_:)))
navView.isUserInteractionEnabled = true
navView.addGestureRecognizer(recognizer)
这个titleTapped函数。
@objc func titleTapped(_ tapGestureRecognizer: UITapGestureRecognizer) {
print("Tapped")
}
我做错了什么?
我尝试将手势识别器添加到标签和图像(单独)。这也不起作用。
感谢。
答案 0 :(得分:1)
您的 // Create a navView to add to the navigation bar
let navView = UIView()
// new line
navView.frame = CGRect(x: 0, y: 0, width: 200, height: 40)
// Create the label
let label = UILabel()
没有框架,因此没有任何内容可以点按。
添加以下行:
org.xml.sax.*
你应该在路上。
答案 1 :(得分:-1)
100%确定在我的应用中工作且经过充分测试。
var tapGesture = UITapGestureRecognizer()
观看并设置IBOutlet,如:
@IBOutlet weak var viewTap: UIView!
在viewDidLoad()上编写漂亮的代码,如:
tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.myviewTapped(_:)))
tapGesture.numberOfTapsRequired = 1
tapGesture.numberOfTouchesRequired = 1
viewTap.addGestureRecognizer(tapGesture)
viewTap.isUserInteractionEnabled = true
当点击手势识别时,此方法正在调用
@objc func myviewTapped(_ sender: UITapGestureRecognizer) {
if self.viewTap.backgroundColor == UIColor.yellow {
self.viewTap.backgroundColor = UIColor.green
}else{
self.viewTap.backgroundColor = UIColor.yellow
}
}
注意:在你的情况下,你必须确定查看哪些视图像UILabel或UIView那样是导航然后将手势分配给它。如果你的标签覆盖整个视图,那么让我们尝试只给出标签的姿态。