繁体   English   中英

如何在不改变字体大小的情况下在swift中更改UILabel的字体?

[英]How do I change the font of a UILabel in swift without changing the font size?

我已经以编程方式创建了一个标签,我已将adjustsToFitWidth设置为true。 现在我想改变它的字体,但是如果不使标签的字体大小不变,我就不能这样做。 有人知道我怎么能只改变swift中UILabel的字体而不是字体大小?

为什么不获取字体大小,并指定具有此值的新字体?

let fontSize = self.label.font.pointSize;
self.label.font = UIFont(name: "HelveticaNeue", size: fontSize)

你可以这样做:

label.font = UIFont(name: "Arial", size: label.font.pointSize)

这将使用相同的字体大小,“Arial”可以是您想要选择的任何家庭。

一个改进的答案。

UILabel子类化:添加一个空的swift文件并命名。 eg.EZLabel。 添加以下代码。

import Foundation
import UIKit

class EZLabel: UILabel {

    override func awakeFromNib() {
        super.awakeFromNib()
        changeFontName()
    }

    func changeFontName()
    {
        self.font = UIFont(name: "Roboto", size: self.font.pointSize)
    }
}

优点是,如果需要,您无需在整个项目中更改每个UILabel的字体。

extension UILabel {
    override open func awakeFromNib() {
        super.awakeFromNib()
        changeFontName()
    }

    func changeFontName()
    {
        self.font = UIFont(name: "YOUR_FONT_NAME", size: self.font.pointSize)
    }
}

/* Do this also for buttons and any uiviews */

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM