如何动态地将动态大小的 UIButtons 插入到 UIStackView 中?

How to insert UIButtons of Dynamic size into a UIStackView dynamically?

效果很好:

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

但这不起作用

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

没有显示!知道为什么吗?我希望标签的行为与按钮非常相似...

感谢您的帮助!

尝试在设置按钮标题后在代码中添加以下行,

 button.sizeToFit()

首先检查 "VARIABLE_LENGTH_STRING" 中是否有任何值,如果它有空字符串,则不会显示任何内容并给出按钮框架大小,这样如果没有文本,按钮高度宽度将是特定的,还有一件事改变按钮背景默认情况下颜色是清晰的,所以如果有的话,你只会在屏幕上看到按钮的内容,如果有的话,通过改变背景颜色和框架你会在屏幕上看到它,但它没有内容要显示 :) .

问题是默认情况下 - 新的 UIButton() 具有白色文本和白色背景 --- grrrr!

我通过以下方式解决了这个问题:

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