web-dev-qa-db-ja.com

フォントサイズを変更せずにSwiftでUILabelのフォントを変更するにはどうすればよいですか?

私はadjustsToFitWidthをtrueに設定したラベルをプログラムで作成しました。フォントを変更したいのですが、ラベルのフォントサイズを一定にしないと変更できません。誰も私が迅速にUILabelのフォントサイズではなくフォントのみを変更する方法を知っていますか?

19
Matt Spoon

フォントサイズを取得して、この値で新しいフォントを指定してみませんか?

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

次のようにできます:

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

これは、同じフォントサイズを使用します。「Arial」は、選択する任意のファミリにできます。

6
iYoung

改善された答え。

UILabelサブクラス化:空のSwift=ファイルを追加して名前を付けます。例: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のフォントを変更する必要がないことです。

3
A.G
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 */
1
Ahmed Samir