Как динамически вставить UIButtons динамического размера в UIStackView?

Это работает отлично:

                let label = UILabel()
                label.text = VARIABLE_LENGTH_STRING
                stackView?.addArrangedSubview(label)

но это не работает

                let button = UIButton()
                button.setTitle(VARIABLE_LENGTH_STRING, for: .normal)
                stackView?.addArrangedSubview(button)

Ничего не отображается! есть идеи почему? Я ожидаю, что ярлыки будут вести себя довольно одинаково с кнопками...

Спасибо за вашу помощь!

3 ответа

Решение

Проблема в том, что по умолчанию - новый UIButton() имеет белый текст и белый фон --- grrrr!

я исправил это, выполнив:

button.setTitleColor(.blue, for: .normal)

Попробуйте добавить строку ниже в вашем коде после установки заголовка кнопки,

 button.sizeToFit()

Сначала проверьте, есть ли какое-либо значение в "VARIABLE_LENGTH_STRING", если в нем есть пустая строка, ничего не будет отображаться и давать размер рамки кнопки, чтобы при отсутствии текстовой высоты высота кнопки была бы определенной, и еще одна вещь изменяла цвет фона кнопок по умолчанию, это ясно, так что Вы увидите содержимое кнопки только на экране, если таковое будет изменено, изменив цвет фона и рамки. Вы увидите его на экране, если у него нет содержимого для отображения:) .

Другие вопросы по тегам