tapGesture 未被执​​行

tapGesture not being executed

我已将 tapGesture 添加到我的 UIImageView rDot。问题是当我点击 rDot 时没有任何反应,也没有打印 "It worked"。 rDot 与其他元素处于堆栈视图中,我不知道这是否与它不起作用有关。 rDot 和 redDot 是两个独立的 UIImageView。

 override func viewDidLoad() {
    super.viewDidLoad()

        rDot.isUserInteractionEnabled = true
        let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(rdotimageTapped(tapGestureRecognizer:)))
        rDot.addGestureRecognizer(tapGestureRecognizer)                        
}

func rdotimageTapped(tapGestureRecognizer: UITapGestureRecognizer) {
        whiteD?.isHidden = true
        redDot?.isHidden = false
        print("It worked")
    }

您需要将 subView 放在前面,因为您已将 imageView 放在 stackView 中。有时视图层次结构无法识别点击的 subviews.

override func viewDidLoad() {
    super.viewDidLoad()

    rDot.isUserInteractionEnabled = true
    let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(rdotimageTapped(tapGestureRecognizer:)))
    rDot.addGestureRecognizer(tapGestureRecognizer) 
    view.bringSubview(toFront: rDot)                
}