我有一台UIView
var transparentBackground = UIView()当一个按钮被点击时,视图被赋予一些属性
@IBAction func UserViewImage(_ sender: UIButton) -> Void {
self.transparentBackground = UIView(frame: UIScreen.main.bounds)
self.transparentBackground.backgroundColor = UIColor(white: 0.0, alpha: 0.4)
UIApplication.shared.keyWindow!.addSubview(self.transparentBackground)
self.opaqueView = self.setupOpaqueView()
self.transparentBackground.addSubview(opaqueView)
UIApplication.shared.keyWindow!.bringSubview(toFront: self.transparentBackground)
self.view.bringSubview(toFront: transparentBackground)
}当单击另一个按钮时,该视图将被完全关闭,并具有一个名为removeAnimate的函数。
func handleOKButtonTapped(_ sender: UIButton){
removeAnimate()
}然而,我希望当背景被点击(视图)时,视图被完全关闭,就像按钮被点击时一样,所以我这样做了:
override func viewDidLoad() {
super.viewDidLoad()
let gestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(removeAnimate))
self.transparentBackground.addGestureRecognizer(gestureRecognizer)
}但是它不工作,我不确定我在做什么wrong.Not,transparentBackground视图中有一个子视图。
self.transparentBackground.addSubview(opaqueView)发布于 2017-06-30 05:14:05
这就是我是如何实现的:
viewDidLoad() {
let gestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(close))
gestureRecognizer.cancelsTouchesInView = false
gestureRecognizer.delegate = self
view.addGestureRecognizer(gestureRecognizer)
}
func close() {
dismiss(animated: true, completion: nil)
}https://stackoverflow.com/questions/44834991
复制相似问题