我在接收作为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放入该视图中,并尝试将标签添加到容器视图中,而不是将其添加到选择器视图中。

10-02 06:44
查看更多