Tapgesture未被执行



我在我的UIImageView RDOT中添加了一个Tapgesture。问题是当我点击rdot时,什么也没发生,并且没有打印"它的工作"。rdot在带有其他元素的堆栈视图中,我不知道这是否与它无效。RDOT和REDDOT是两个独立的UIImageViews。

 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)                
}

最新更新