我在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
中的triggered
是new touch
的detected
进行 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/