带有标签 + 按钮的 UIView - 无法识别点击手势
UIView with label + button - Tap gesture not recognized
我在导航项标题视图中添加了标签和图像,如下所示 -
然后我添加了这三行代码,使标题可以点击。
....
let recognizer = UITapGestureRecognizer(target: self, action: #selector(MyViewController.titleTapped(_:)))
navView.isUserInteractionEnabled = true
navView.addGestureRecognizer(recognizer)
还有这个titleTapped函数。
@objc func titleTapped(_ tapGestureRecognizer: UITapGestureRecognizer) {
print("Tapped")
}
我做错了什么?
我尝试将手势识别器添加到标签和图像(分别)。那也没用。
谢谢。
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,然后将手势分配给 it.If 您的标签封面整个视图然后让我们尝试只给标签一个手势。
您的 NavView
没有框架,所以没有任何东西 "there" 可以点击。
添加这一行:
// 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()
你应该在路上了。
我在导航项标题视图中添加了标签和图像,如下所示 -
然后我添加了这三行代码,使标题可以点击。
....
let recognizer = UITapGestureRecognizer(target: self, action: #selector(MyViewController.titleTapped(_:)))
navView.isUserInteractionEnabled = true
navView.addGestureRecognizer(recognizer)
还有这个titleTapped函数。
@objc func titleTapped(_ tapGestureRecognizer: UITapGestureRecognizer) {
print("Tapped")
}
我做错了什么?
我尝试将手势识别器添加到标签和图像(分别)。那也没用。
谢谢。
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,然后将手势分配给 it.If 您的标签封面整个视图然后让我们尝试只给标签一个手势。
您的 NavView
没有框架,所以没有任何东西 "there" 可以点击。
添加这一行:
// 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()
你应该在路上了。