获取调整后的标签字体大小

时间:2019-04-10 19:33:27

标签: ios swift

我有一个标头标签,正在调整其字体大小,以适合标签的大小。我想存储该字体大小的值,以便可以为其设置一些按钮的字体大小。

我试图只存储标签的pointSize,但这只是给我未调整的值,而不是实际上有效的值。

这样做的原因是,我希望标签和按钮中所有文本的大小在不同大小的iPad屏幕上看起来都不错。但是我很难在多个元素上保持相同的大小。

class ViewController: UIViewController {
    @IBOutlet weak var essenceButton: UIButton!
    @IBOutlet weak var titleLabel: UILabel!
    @IBOutlet weak var tribesButton: UIButton!

    @IBOutlet weak var creaturesButton: UIButton!
    @IBOutlet weak var monstersButton: UIButton!
    @IBOutlet weak var musesButton: UIButton!
    @IBOutlet weak var newsletterButton: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()

        self.titleLabel.adjustsFontSizeToFitWidth = true

        let fontsize = self.titleLabel.font.pointSize

        self.essenceButton.titleLabel?.font = essenceButton.titleLabel?.font.withSize(fontsize)

        self.tribesButton.titleLabel?.font = tribesButton.titleLabel?.font.withSize(fontsize)
    }
}

1 个答案:

答案 0 :(得分:0)

viewDidLoad(),该视图及其子视图(包括标签)尚未在设备屏幕上进行布局,因此标签的字体大小未更改。

您应该可以在viewWillLayoutSubviews()中进行此操作:

override func viewWillLayoutSubviews() {
  super.viewWillLayoutSubviews()
  view.layoutIfNeeded()
  // Code to adjust font of the other UI items here
}