UIView标签+按钮 - 点击手势无法识别

时间:2018-03-13 12:52:41

标签: ios swift uigesturerecognizer

我在导航项目标题视图中添加了标签和图像,如下所示 - 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")
    }

我做错了什么?

我尝试将手势识别器添加到标签和图像(单独)。这也不起作用。

感谢。

2 个答案:

答案 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那样是导航然后将手势分配给它。如果你的标签覆盖整个视图,那么让我们尝试只给出标签的姿态。