🔤

SwiftUIのFontまとめ(軽)

2023/08/12に公開

環境

Xcode 14.3.1

関連する型

型が多すぎなのでここにまとめる。

🥇Font.TextStyle

enumである。
字の大きさを扱う。
largeTitle から caption2 まで11種類。
細かいが、Font のstatic定数にも似たものが定義されている。つまり Font.TextStylebodyFont のstatic定数の body がある。

🥈Font.Design

enumである。
文字の装飾を扱う。
default serif rounded monospaced の4つ。

🥈Font.Weight

structである。
線の太さを扱う。
ultraLight から black までの9種類をstatic変数で持つ。

🥉Font.Width

structである。
文字の幅(?)
値を持つことも出来る。
compressed condensed standard expanded の4種類をstatic変数で持つ。

🥉Font.Leading

enumである。
行間を扱う。
standard tight loose の3つ。

イニシャライザ system

大きさ、Design、Weightを指定する(Design、Weightは省略可)。
nilを指定した時には基本的に Design/default Weight/regular であるが、状況に依存する場合があるそうな。

↓大きさを .body などで指定するタイプ

@available(iOS 16.0, macOS 13.0, tvOS 16.0, watchOS 9.0, *)
public static func system(
  _ style: Font.TextStyle, 
  design: Font.Design? = nil, 
  weight: Font.Weight? = nil) -> Font

↓大きさを数値で指定するタイプ

@available(iOS 16.0, macOS 13.0, tvOS 16.0, watchOS 9.0, *)
public static func system(
  size: CGFloat, 
  weight: Font.Weight? = nil, 
  design: Font.Design? = nil) -> Font

これはDynamic Typeに対応しない。
Dynamic Typeに対応させたい場合はcustomの方を使い、フォントの名前を "" にする。

イニシャライザ custom

customの方はフォントの名前を指定できる。

public static func custom(_ name: String, size: CGFloat) -> Font

↑サイズの変化はbodyに準ずる。

public static func custom(_ name: String, size: CGFloat, relativeTo textStyle: Font.TextStyle) -> Font

↑サイズの変化は与えた textStyle に準ずる。

public static func custom(_ name: String, fixedSize: CGFloat) -> Font

↑サイズ固定。

将来deprecatedイニシャライザ

public static func system(_ style: Font.TextStyle, design: Font.Design = .default) -> Font

↑進化型の system(_ style: Font.TextStyle, design: Font.Design? = nil, weight: Font.Weight? = nil) に統合される

public static func system(size: CGFloat, weight: Font.Weight = .regular, design: Font.Design = .default) -> Font

↑進化型の system(size: CGFloat, weight: Font.Weight? = nil, design: Font.Design? = nil) に統合される。これはnilを受け付ける。

モディファイア

public func italic() -> Font
public func bold() -> Font
public func monospaced() -> Font
public func smallCaps() -> Font
public func lowercaseSmallCaps() -> Font
public func uppercaseSmallCaps() -> Font
public func monospacedDigit() -> Font
public func weight(_ weight: Font.Weight) -> Font
public func width(_ width: Font.Width) -> Font
public func leading(_ leading: Font.Leading) -> Font

さいごに

余裕があればさらに細かいところをやる。

Discussion