У меня есть StackView, созданный с помощью построителя интерфейса, затем я добавляю в него 2 представления программно, с помощью swift, в первом представлении я добавляю кнопку, при которой второй UIView исчезает при нажатии, но проблема в том, что это не так. исчезает, и после этого я не могу снова нажать кнопку, интересно, что случилось? и как я могу это исправить?
Вот мой код для добавления подпредставлений в UIStackView
let dropTag = 2
if let nibFile1 = Bundle.main.loadNibNamed("NibFile1", owner: self, options: nil)?.first as? NibFile1 {
let newView = UIView()
newView.addSubview(nibFile1)
stackView.addArrangedSubview(newView)
nibFile1.button.tag = dropTag
nibFile1.button.addTarget(self, action: #selector(onClick), for: .touchUpInside)
}
if let nibFile2 = Bundle.main.loadNibNamed("NibFile2", owner: self, options: nil)?.first as? NibFile2 {
let newView = UIView()
newView.tag = dropTag
// newView.isHidden = true
stackView.addArrangedSubview(newView)
}
Обратите внимание, что NibFile1
- это вид с кнопкой внутри
И вот функция, которая запускается, когда я нажимаю кнопку
@objc func onClick(_ sender: UIButton) -> Void {
if let targetView = stackView.viewWithTag(sender.tag) {
print("target tag", targetView.tag, "is hidden", targetView.isHidden)
targetView.isHidden = !targetView.isHidden
}
}
Вывод: второй UIView в просмотре стека не исчезал, когда я нажимал кнопку, также я не могу снова нажать кнопку на первом UIView.