【发布时间】:2018-10-13 11:00:49
【问题描述】:
给定视图层次结构:
UIStackView
--UILabel
--UISwitch
标签过早中断,即使它可以适合单行。
设置numberOfLines = 1 强制标签正确布局。
如何让 UILabel 只在需要时才执行换行?
代码:
private lazy var title: UILabel = {
let v = UILabel()
v.numberOfLines = 0
return v
}()
private lazy var toggle = UISwitch()
private lazy var stack = UIStackView(axis: .horizontal,
distribution: .equalSpacing,
alignment: .center,
views: [title,
toggle])
func setupConstraints() {
stack.snp.makeConstraints { (make) in
make.edges.equalTo(contentView.layoutMarginsGuide)
}
}
设置numberOfLines = 1 让我得到了我想要实现的目标,但标签失去了它的多行功能:
如何在不失去对多行标签的支持的情况下强制期望的行为?
当水平空间很大时,无论numberOfLines 属性如何,标签都会正确布局:
【问题讨论】:
标签: ios autolayout uilabel uistackview