我已将 tapGesture 添加到我的 UIImageView rDot。问题是当我点击 rDot 时没有任何反应并且它不打印“It worked”。 rDot 与其他元素处于堆栈 View 中,我不知道这是否与它不起作用有关。 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
中。有时 View 层次结构无法识别点击的 subview
。
override func viewDidLoad() {
super.viewDidLoad()
rDot.isUserInteractionEnabled = true
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(rdotimageTapped(tapGestureRecognizer:)))
rDot.addGestureRecognizer(tapGestureRecognizer)
view.bringSubview(toFront: rDot)
}
关于ios - tapGesture 未被执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45945142/