Цикл вложенных стеков в Swift - PullRequest
0 голосов
/ 23 февраля 2019

Я хочу иметь возможность изменять цвет на кнопках в iOS, которые находятся внутри произвольного числа горизонтальных стеков, которые находятся внутри одного вертикального стека.

Я думал сделать что-то подобное

for view in self.view.subviews as [UIView] {
    if let hstack = view as? UIStackView {
        for btn in hstack.arrangedSubviews {
            if let btn = view as? UIButton {
                btn.backgroundColor = UIColor.red
            }
        }
    }
}

Но я получаю строку предупреждения

"Неизменное значение 'btn' никогда не использовалось;заменить на '_' или удалить его "

1 Ответ

0 голосов
/ 23 февраля 2019

У вас есть 2 константы с именем btn.Первый создается циклом for, второй - if let.Цикл for btn не используется.

Я бы предложил написать ваш код следующим образом:

for case let hstack as UIStackView in self.view.subviews {
    for case let btn as UIButton in hstack.arrangedSubviews {
        btn.backgroundColor = .red
    }
}

При этом используются шаблоны для выбора определенных типов элементов из массивов.Первый цикл выбирает только те подпредставления, которые имеют тип UIStackView.Внутренний цикл выбирает только те упорядоченные подпредставления, которые имеют тип UIButton.

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