我在接收作为UITapGesture
子视图的UILabel
上的UIPickerView
时遇到问题。
let statusDisplayLabel = UILabel(frame: CGRect(x: 0,
y: 0,
width: <#width of UIPickerView #>,
height: <# height of UIPickerView row #>))
statusDisplayLabel.isUserInteractionEnabled = true
let tapGesture = UITapGestureRecognizer(target: self,
action: #selector(didTapStatusDisplayLabel(tap:)))
tapGesture.numberOfTapsRequired = 1
tapGesture.numberOfTouchesRequired = 1
statusDisplayLabel.addGestureRecognizer(tapGesture)
<# UIPickerView #>.addSubview(statusDisplayLabel)
@objc func didTapStatusDisplayLabel(tap: UITapGestureRecognizer){
print("tapped")
}
UILabel
将显示在UIPickerView
上方。但是,“轻击”消息永远不会在控制台中显示,因为点击只是滑过了statusDisplayLabel
,而是移动了UIPickerView
。好像UILabel
不存在我想念什么?
最佳答案
尝试创建容器视图,将UIPickerView放入该视图中,并尝试将标签添加到容器视图中,而不是将其添加到选择器视图中。