Swift 中的 UITapGestureRecognizer 无法在 UIView 上工作

UITapGestureRecognizer not working on UIView in Swift

private let myView: UIView = {
    let view = UIView()
    view.backgroundColor = .color(fromHexString: "EDF1F4")
    view.layer.cornerRadius = 15
    view.layer.masksToBounds = true
    view.layer.borderWidth = 2
    view.layer.borderColor = UIColor.color(fromHexString: "FFFFFF").cgColor
    
    // click event
    let tap = UITapGestureRecognizer(target: self, action: #selector(myViewTapped))
    tap.numberOfTapsRequired = 1
    view.isUserInteractionEnabled = true
    view.addGestureRecognizer(tap)
    
    return view
}()

如您所见,我添加了背景颜色,因此背景不透明,而且我还添加了 isUserInteractionEnabled = true

但这不起作用。

上面第一行代码的问题。我的意思是声明 myView。 使用 private lazy var myView: UIView = { ... } 而不是使用 private let myView: UIView = { ... } 将解决问题。

我遇到过这个问题,所以我想其他人可能也会遇到同样的问题。所以我post这个。 谢谢