我在ViewController中创建了一个带有文本字段和按钮的popView。如果我单击按钮,则popView出现,并且我能够在文本字段中输入文本并提交正在工作,并且如果我在视图中点击任意位置,我也可以删除popView,但是在这里,我想如果我在popView中的任意位置点击我不想关闭popView,请在代码中帮助我。

这是我的代码:

 import UIKit

 class PopUPViewController: UIViewController {

@IBOutlet weak var popView: UIView!
@IBOutlet weak var inputField: UITextField!
@IBOutlet weak var textLabel: UILabel!
override func viewDidLoad() {
    super.viewDidLoad()
    popView.isHidden = true
    // Do any additional setup after loading the view.
}

@IBAction func butnAct(_ sender: Any) {
    view?.backgroundColor = UIColor(white: 1, alpha: 0.9)
    popView.isHidden = false
    let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(PopUPViewController.dismissView))
    view.addGestureRecognizer(tap)
}

@objc func dismissView() {
    self.popView.isHidden = true
    view?.backgroundColor = .white
}

@IBAction func sendButton(_ sender: Any) {
    self.textLabel.text = inputField.text
}
}

在我的代码中,如果我点击视图中的任何位置,即使我同时点击popView也将其删除,popView也将被删除,我不需要,如果我点击popView,则不必删除popView。

请帮助我的代码

最佳答案

您可以对override中的triggerednew touchdetected进行 touchesBegan 方法的view编码。通过使用此window,您可以检查是否触摸了特定的method

这样尝试

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
     let touch = touches.first
     if touch?.view != self.popView {
        dismissView()
    }
}

func dismissView() {
    self.popView.isHidden = true
    view?.backgroundColor = .white
}

关于ios - 如果我们轻按背景中的popView之外的任何地方,如何在背景中轻按,如何删除popView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58835825/

10-10 22:24