Установить isHidden UIView внутри UIStackView не работает - PullRequest
0 голосов
/ 27 марта 2020

У меня есть 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.

...