我想删除UIView
用户点击除该视图之外的其他内容后从屏幕上显示。 (为了让您形象化,我将上传我的视图草图)
我想去掉蓝色UIView
用户点击此视图中除按钮之外的其他内容后。我应该用什么?
编辑:
穿蓝色衣服UIView
有两个按钮,我想在用户点击背景图像时删除该视图
我做了 @yerpy 告诉我的事情,但它不起作用。
func test(gestureRecognizer: UITapGestureRecognizer) {
print("test")
}
func setUpBackgroundImageView() {
self.view.addSubview(backgroundImageView)
backgroundImageView.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
backgroundImageView.heightAnchor.constraint(equalTo: view.heightAnchor).isActive = true
backgroundImageView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
backgroundImageView.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
let tap = UITapGestureRecognizer(target: self, action: #selector(test(gestureRecognizer:)))
backgroundImageView.addGestureRecognizer(tap)
tap.delegate = self
}
我还添加shouldReceiveTouch
功能为UIGestureRecognizerDelegate
。我究竟做错了什么?
Add UIGestureRecognizer
to the super view
:
正如你所说,你有图像视图作为背景。
let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(tapped(gestureRecognizer:)))
imageView.addGestureRecognizer(tapRecognizer)
tapRecognizer.delegate = self
添加目标动作:
func tapped(gestureRecognizer: UITapGestureRecognizer) {
// Remove the blue view.
}
然后里面UITapGestureRecognizerDelegate
:
extension ViewController : UIGestureRecognizerDelegate {
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
if touch.view!.superview!.superclass! .isSubclass(of: UIButton.self) {
return false
}
return true
}
}
希望能帮助到你 !
EDIT
确保用户可以触摸view
通过启用:self.view.userInteractionEnabled = true
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)