如何缩小字体大小以适合stackview的3个项目?重要的是要注意,Stackview中所有视图的字体大小都应该相同。
请在下面查看问题。 “我的订单”标签的字体比Stackview其余字体小。
将所有项目以相同的字体大小均匀地分布在Stackview中。
在标签上设置以下属性。
label.adjustsFontSizeToFitWidth = true
label.minimumScaleFactor=0.75
在Stackview上设置以下属性。
stackView.axis = .horizontal
stackView.distribution = .equalSpacing
stackView.alignment = .center
stackView.spacing = 16.0
谢谢您的建议。
答案 0 :(得分:1)
您尝试改用fillEqually吗?这两个项目的大小应该相等。
答案 1 :(得分:0)
我解决此问题的方法是根据标签中的字符数并使用该信息在标签上设置宽度约束,计算每个项目占堆栈视图总宽度的百分比。像这样:
let totalCount = labels(into: 0) { $0 += $1.text.count }
labels.forEach { label in
let widthRatio = CGFloat(label.text.count) / CGFloat(totalCount)
label.widthAnchor.constraint(equalTo: label.superview!.widthAnchor, multiplier: widthRatio).isActive = true
}