【问题标题】:How to shrink font size to fit in the stackview but remain the same fontsizes in the whole stackview?a如何缩小字体大小以适应堆栈视图但在整个堆栈视图中保持相同的字体大小?
【发布时间】:2019-03-06 12:29:01
【问题描述】:

如何缩小字体大小以适应 的 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

感谢您的建议。

【问题讨论】:

    标签: stackview swift uistackview


    【解决方案1】:

    您是否尝试使用 fillEqually 代替?这应该给你两个项目相同的大小。

    【讨论】:

      【解决方案2】:

      我解决这个问题的方法是根据标签中的字符数计算每个项目应占堆栈视图总宽度的百分比,并使用该信息设置标签的宽度约束。像这样的:

      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
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-09
        • 1970-01-01
        • 1970-01-01
        • 2018-07-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多