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


246

label.font.pointSize は読み取り専用なので、変更方法がわかりません。


拡張UILabel {func font(size:CGFloat){self.font = UIFont(descriptor:self.font.fontDescriptor、size:size)}}
Mohammad Razipour

回答:


589

あなたはこのようにそれを行うことができます:

label.font = UIFont(name: label.font.fontName, size: 20)

またはこのように:

label.font = label.font.withSize(20)

これは同じフォントを使用します。20はもちろん、好きなサイズにすることができます。

注:後者のオプションは、現在のフォントの太さを上書きするregularため、フォントの太さを保持したい場合は、最初のオプションを使用します。

Swift 3アップデート

label.font = label.font.withSize(20)

Swift 4アップデート

label.font = label.font.withSize(20)

または

label.font = UIFont(name:"fontname", size: 20.0)

システムフォントを使用する場合

label.font = UIFont.systemFont(ofSize: 20.0)
label.font = UIFont.boldSystemFont(ofSize: 20.0)
label.font = UIFont.italicSystemFont(ofSize: 20.0)

5
これにより、フォントのpointSizeプロパティが実際に変更されます。ただし、pointSizeは、ラベルが再描画される前にすぐに17.0にリセットされます。したがって、実際に画面上で異なるフォントサイズを表示するには、それだけではありません。
ジェイ

1
フォントをどこかに17に設定していますか?ストーリーボード?
コナー2014年

1
私はそれを私のiPhone 5で実行し、あなたのコードは動作します。シミュレータのバグであるに違いありません。
ジェイ

それは面白い。しかし、別のバグを見て驚くことはありません。機能してうれしい
コナー2014年

5
私はそれがより高速になることを知っていたので、単に見上げる代わりにこれをググったら、ドキュメントに深刻な問題があります。
Andrew Plummer

72

私はこれを行うための最良の方法を考えています-に既に割り当てられている同じフォントを維持する場合UILabel は次のようになります:

(Swiftを使用)

label.font = label.font.fontWithSize(20)

(Swift 3を使用)

label.font = label.font.withSize(20)

viewDidLayoutSubviewsビューが表示されるたびに変更する必要がないため、これをメソッドに設定するのが理想的です。


39
label.font = UIFont.systemFontOfSize(20)

5
label.font = UIFont.systemFont(ofSize:20)//すぐに3
Kang Byul

このソリューションは、カスタムフォントでは機能しません。常にシステムフォントを返します。
Awais Fayyaz

24

次のような要件に従ってフォントを設定できます。

label.font = UIFont(name: "Avenir-Light", size: 15.0)
label.font = UIFont.boldSystemFontOfSize(15)
label.font = UIFont.italicSystemFontOfSize(15)
label.font = UIFont.systemFontOfSize(17)

8

フォントのサイズを変更したい場合は、この拡張機能を作成します

// Add extension

extension UILabel {
    func setSizeFont (sizeFont: Double) {
        self.font =  UIFont(name: self.font.fontName, size: sizeFont)!
        self.sizeToFit()
    }
}

// Use

myLabel.setSizeFont(60)

これは私を助けました。私は、フォントサイズ、SWIFT 4.でその作業に変更
R.モハン

6

あなたもこのように与えることができます

labelName.font = UIFont(name: "systemFont", size: 30)




2

拡張機能を使用できます。

import UIKit

extension UILabel {

    func sizeFont(_ size: CGFloat) {
        self.font = self.font.withSize(size)
    }
}

それを使用するには:

self.myLabel.fontSize(100)

2

Appleは理由もなく変更を続けています:Swift 4以降:

myLabel.font = UIFont.systemFont(ofSize: 16)

アップルが使用する必要のある「フォントサイズ」メソッドを見つけるために時間を無駄にしてくれてありがとう。


2

プログラム的に

label.font = UIFont.systemFont(ofSize: 20.0)
label.font = UIFont.boldSystemFont(ofSize: 20.0)
label.font = UIFont.italicSystemFont(ofSize: 20.0)

label.font = UIFont(name:"Helvetica Neue", size: 20.0)//Set your font name here

ストーリーボードを通して

複数行を表示するには、0(ゼロ)を設定すると、ラベルに複数行が表示されます。

2行だけを表示する場合は、2を設定します。

ここに画像の説明を入力してください

ラベルの最小フォントサイズを設定する場合は、[自動圧縮]クリックし[最小フォントサイズ ]オプションを選択します

以下の画面を参照してください

ここに画像の説明を入力してください

ここで最小フォントサイズを設定します

EX:9(この画像)

ラベルがその時点でより多くのテキストを取得する場合、ラベルテキストは最大9に縮小されます

ここに画像の説明を入力してください



1

fontWithSizeライトシステムフォントのラベルに使用しましたが、通常のシステムフォントに戻ります。

フォントの特性を維持したい場合は、記述子を含めることをお勧めします。

label.font = UIFont(descriptor: label.font.fontDescriptor(), size: 16.0)


1

Swift 3の場合:

label = UIFont.systemFont(ofSize: 20)

また、システムの事前設定サイズを使用するには、例えば:

label = UIFont.systemFont(ofSize: UIFont.smallSystemFontSize)

label.fontを忘れたようです
イーサンパーカー


0

Swift 3.1

import UIKit

extension UILabel {
    var fontSize: CGFloat {
        get {
            return self.font.pointSize
        }
        set {
            self.font =  UIFont(name: self.font.fontName, size: newValue)!
            self.sizeToFit()
        }
    }
}

0

swift 4:

label.font = UIFont("your font name", size: 15)

また、プロジェクトのすべてのビューでラベルのフォントを設定する場合は、appDelegate>didFinishLaunch次の場所で試してください。 UILabel.appearance().font = UIFont("your font name", size: 15)


0

太字オプションでカスタムフォントを使用する場合:

nameLabel.font = UIFont(name: "GillSans-Bold", size: 27)


-1

ストーリーボードからフォントサイズを変更するのは非常に簡単で便利で、変更の結果をすぐに確認できます。

実際、ストーリーボード上の他のフォント属性(スタイル、フォントファミリなど)も簡単に変更できます。

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.