如何动态地将动态大小的 UIButtons 插入 UIStackView?
Posted
技术标签:
【中文标题】如何动态地将动态大小的 UIButtons 插入 UIStackView?【英文标题】:How to insert UIButtons of Dynamic size into a UIStackView dynamically? 【发布时间】:2017-12-21 06:15:49 【问题描述】:这很好用:
let label = UILabel()
label.text = VARIABLE_LENGTH_STRING
stackView?.addArrangedSubview(label)
但这不起作用
let button = UIButton()
button.setTitle(VARIABLE_LENGTH_STRING, for: .normal)
stackView?.addArrangedSubview(button)
什么都没有显示!知道为什么吗?我希望标签的行为与按钮非常相似......
感谢您的帮助!
【问题讨论】:
设置按钮的背景颜色并检查。 【参考方案1】:问题在于默认情况下 - 一个新的 UIButton() 具有白色文本和白色背景 --- grrrr!
我通过这样做解决了这个问题:
button.setTitleColor(.blue, for: .normal)
【讨论】:
遇到了同样的问题并进行了同样的调试。谢谢。【参考方案2】:设置按钮标题后,尝试在代码中添加以下行,
button.sizeToFit()
【讨论】:
【参考方案3】:首先检查“VARIABLE_LENGTH_STRING”中是否有任何值,如果它有空字符串,则不会显示任何内容并给出按钮框架大小,因此如果没有文本按钮高度宽度将是特定的,另外还有一件事更改按钮背景颜色默认情况下它很清楚,因此您只能通过更改背景颜色和框架在屏幕上看到按钮的内容(如果有),您将在屏幕事件中看到它,它没有要显示的内容:)。
【讨论】:
问题是一切都默认为白色 - 白色背景上的白色文本!谢谢指点。以上是关于如何动态地将动态大小的 UIButtons 插入 UIStackView?的主要内容,如果未能解决你的问题,请参考以下文章