LoginSignup
1
3

More than 1 year has passed since last update.

SwiftUI: 簡単にフォント名を指定する方法!

Posted at

SwiftUIのフォント

SwiftUIにおいて文字のフォントを指定したいときは、以下のようにフォント名を文字列として入力します。

SampleText.swift
import SwiftUI

struct ContentView: View {
    var body: some View {
        Text("Hello,World!")
            .font(.custom("AcademyEngravedLetPlain", size: 100))
    }
}

ただ、毎回コピペしたり正しい名前になっているか確認するのは面倒ですし、名前を間違えてしまう可能性もあります。
また、デザインに合うフォントを色々試してみたいときにも切り替えが早い方が効率的です。

改善策

以下のようなextensionを用いると比較的ラクにフォント名の指定ができるようになります。例のように「タイトル用」などとコメントを残しておくと後で使うときに迷わずに済みます。

FontExtension.swift
extension Font {

    enum Keys: String {
        case AcademyEngravedLetPlain
        case AlNile

        ///タイトル用
        case Damascus
    }

    static func namedFont(_ name: Keys, size: CGFloat) -> Font {
        return Font.custom(name.rawValue, size: size)
    }
}

使用例

SampleText.swift
import SwiftUI

struct ContentView: View {
    var body: some View {
        Text("Hello,World!")
            .font(.namedFont(.AcademyEngravedLetPlain, size: 100))
    }
}

コードの見た目や長さはほとんど同じですが、Xcodeならコード補完で正確にフォント名を指定できるようになります。

余談

同様の意図で実装の仕方を調べるとカスタムModifierを用いたものが紹介されていることが多いです。
そちらでも問題はないのですが、今回紹介したextensionを用いる方法だとフォントに対して変更を加えたことが明示的になるので、多人数開発のときには少しだけ便利かな...と思います。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3