UIButton ломается после того, как прячется и прячется - PullRequest
0 голосов
/ 29 июня 2019

На мой взгляд, на раскадровке созданы несколько кнопок UIB. Нажимая одну, я скрываю их все, и у меня появляется куча новых кнопок UIB, созданных программно, одна из которых - кнопка «назад».

Когда я нажимаю кнопку возврата (которая скрывает новые кнопки и показывает оригинальные), они больше не работают. Из того, что я могу сказать, это не доходит до @IBAction вообще. Это не регистрация хита.

//Hide buttons originally
        for button in menuButtonArray {
            button.isHidden = true
            button.isEnabled = false
        }

//Reveal buttons when "back" button is hit
        for button in menuButtonArray {
             button.isHidden = false
             button.isEnabled = true
        }

Я пытался использовать .isUserInteractionEnabled безрезультатно. Я попытался удалить программно созданные кнопки (вместо того, чтобы просто скрыть их). Я попытался скрыть стек, содержащий кнопки, вместо самих кнопок.

Я подумал, что это должно просто скрывать и показывать кнопки, но как-то их ломает?

Еще одна странность, она не ломает все кнопки. Верхняя и нижняя кнопки в моем стеке работают, но не между ними.


UPDATE

Ниже показано, как я создаю и добавляю кнопки в menuButtonArray. Я проверил, делаю ли я печать каждой кнопки до и после их включения и отключения, тег добавляется и удаляется, по-видимому, правильно. Кроме того, они прячутся и не прячутся без проблем. Спасибо за помощь !!

var menuButtonArray: [UIButton] = [UIButton]()
override func viewDidLoad() {
    menuButtonArray += [button1, button2, button3, button4, button5, button6, button7]
}

1 Ответ

0 голосов
/ 29 июня 2019

Aha! Спасибо за помощь! Я понял. @finalstatic Я проверил слои. Когда я создал кнопки программно, я использовал сетку UIStackView, чтобы расположить их. Я предположил, что если они будут пустыми, они будут просто проходить через клики к слою под ним. Видимо, нет, хотя ха-ха! Я исправил это, скрыв также UIStackView!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...