SwiftUIのFontまとめ(軽)
環境
Xcode 14.3.1
関連する型
型が多すぎなのでここにまとめる。
🥇Font.TextStyle
enumである。
字の大きさを扱う。
largeTitle
から caption2
まで11種類。
細かいが、Font
のstatic定数にも似たものが定義されている。つまり Font.TextStyle
の body
と Font
の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