如何缩小字体大小以适合stackview但在整个stackview中保持相同的字体大小?

时间:2018-10-01 11:44:17

标签: swift uistackview

如何缩小字体大小以适合的3个项目?重要的是要注意,Stackview中所有视图的字体大小都应该相同。

请在下面查看问题。 “我的订单”标签的字体比Stackview其余字体小。

enter image description here

我想实现什么?

将所有项目以相同的字体大小均匀地分布在Stackview中。

我已经尝试了什么?

  

在标签上设置以下属性。

label.adjustsFontSizeToFitWidth = true
label.minimumScaleFactor=0.75
  

在Stackview上设置以下属性。

 stackView.axis = .horizontal
    stackView.distribution = .equalSpacing
    stackView.alignment = .center
    stackView.spacing = 16.0

谢谢您的建议。

2 个答案:

答案 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
}