首页 > 解决方案 > 一行上两个标签的字体大小

问题描述

所以我想要的是:我想在一行上有一个标签。第一个单词的字体大小应为 100,另一个单词的字体大小为 10。有人知道如何实现这一点吗?当我调用下面的方法时,我会得到一个由具有完全相同属性的两个标签组成的字符串。

    public let speedLabel: UILabel = {
       let label = UILabel()
        label.translatesAutoresizingMaskIntoConstraints = false
        label.sizeToFit()
        label.font = UIFont(name: "Helvetica-Bold", size: 100)
        label.text = "0.0"
        label.textColor = UIColor.blue
        label.textAlignment = .left
        return label
    }()
    
    public let speedUnitLabel: UILabel = {
        let label = UILabel()
        label.translatesAutoresizingMaskIntoConstraints = false
        label.sizeToFit()
        label.font = UIFont(name: "Helvetica-Bold", size: 10)
        label.text = "km/h"
        label.textAlignment = .right
        label.textColor = UIColor.blue
        return label
    }()

这就是我设置这些标签的方式:

        func setupSpeedLabel() {
            SpeedContainerView.addSubview(speedLabel)
            speedLabel.centerXAnchor.constraint(equalTo: TopBackGroundView.centerXAnchor, constant: 0).isActive = true
            speedLabel.centerYAnchor.constraint(equalTo: SpeedContainerView.centerYAnchor, constant: 0).isActive = true
            speedLabel.isUserInteractionEnabled = false
            view.bringSubviewToFront(speedLabel)
        }
        func setupSpeedUnitLabel() {
            SpeedContainerView.addSubview(speedUnitLabel)
            speedUnitLabel.centerXAnchor.constraint(equalTo: speedLabel.leftAnchor, constant: 0).isActive = true
            speedUnitLabel.centerYAnchor.constraint(equalTo: SpeedContainerView.centerYAnchor, constant: 0).isActive = true
            speedUnitLabel.isUserInteractionEnabled = false
            view.bringSubviewToFront(speedUnitLabel)
        }

标签: iosswiftxcodeuikit

解决方案


试过代码和标签有不同的属性,所以问题可能与标签的父视图有关。

我所做的是将setupSpeedUnitLabel ()上的 speedUnitLabel.centerXAnchor.constraint从speedLabel.leftAnchor, constant: 0更改为speedLabel.rightAnchor, constant: 20(20 常量只是为了在文本之间留出一点空间)。

结束了这个

函数 setupSpeedUnitLabel() {

    SpeedContainerView.addSubview(speedUnitLabel)
    speedUnitLabel.centerXAnchor.constraint(equalTo: speedLabel.rightAnchor, constant: 20).isActive = true
    speedUnitLabel.centerYAnchor.constraint(equalTo: SpeedContainerView.centerYAnchor, constant: 0).isActive = true
    speedUnitLabel.isUserInteractionEnabled = false
    view.bringSubviewToFront(speedUnitLabel)
}

这是输出:

在此处输入图像描述

我假设是你想要达到的目标。

确保SpeedContainerView及其父视图足够大以支持 100 字体大小。

希望这可以帮助。


推荐阅读