我在我的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)
}