如何动态地将动态大小的 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)
效果很好:
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)