XCode 15.0 日本語化計画:New Human Interface Guideline
SwiftUI は、組み込みフォントを使用したテキストビューのスタイル設定をサポートしており、デフォルトでシステムフォントを使用します。システムが提供するフォントを使用するのではなく、Xcode プロジェクトにフォントファイルを含めることでカスタムフォントを使用できます。カスタムフォントを使用するには、ライセンスされたフォントを含むフォントファイルをあなたのアプリに追加し、そのフォントをテキストビューに適用するか、コンテナビュー内のデフォルトフォントとして設定します。SwiftUI のアダプティブテキストの表示は、ダイナミックタイプを使用してフォントを自動的に拡大縮小します。
ダイナミックタイプを使用すると、ユーザはスクリーン上に表示されるテキストコンテンツのサイズを選択できます。読みやすくするために大きなテキストを必要とするユーザを支援し、小さなテキストを読めるユーザに対応して、より多くの情報をスクリーン上に表示できるようにします。
フォントファイルをあなたの Xcode プロジェクトに追加するには:
iOS、watchOS、tvOS、または Mac Catalyst ターゲットの場合は、あなたのアプリの Info.plist ファイルに UIAppFonts キーを追加して下さい。キーの値として、追加されたフォントファイルへの相対パスを含む文字列の配列を指定します。macOS アプリターゲットの場合は、ターゲットの Info.plist ファイル内の ATSApplicationFontsPath キーを使用し、そのキーの値としてフォントを保持するフォルダーの名前を指定して下さい。
以下の例では、フォントファイルが project_fonts ディレクトリ内にあるため、Info.plist ファイル内の文字列値として project_fonts/MyFont.ttf を使用します。
custom(_:size:) メソッドを使用してあなたのフォントのインスタンスを取得し、それを font(_:) 修飾子を使用してテキスト ビューに適用します。custom(_:size:) でフォントを取得する場合、フォントの名前とフォントの PostScript 名を一致させます。フォントの PostScript 名を確認するには、Font Book アプリでフォントを開いて [Font Info(フォント情報)] タブを選択します。SwiftUI があなたのフォントを取得して適用できない場合は、代わりにデフォルトのシステムフォントでテキストビューをレンダリングします。
以下の例では、フォント MyFont をテキストビューに適用します。
フォントは、body のデフォルトのテキストスタイルに合わせて、提供されたサイズから適応して拡大縮小されます。デフォルトの body 以外で拡大縮小するテキストスタイルを指定するには、relativeTo パラメータを使用します。たとえば、フォント サイズを 32 ポイントに設定し、title のテキストスタイルに応じ適応して拡大/縮小するには、以下のようにします。
SwiftUI は、フォントの太字または斜体のスタイルを合成しません。フォントがウェイト付きまたはイタリックのバリアントをサポートしている場合は、weight(_:) または italic() 修飾子を使用してフォントのスタイルを設定することで、テキストビューのタイポグラフィをカスタマイズできます。
あなたのターゲットプラットフォームでアプリを強化するためのフォントの選択に関するデザインガイダンスについては、ヒューマンインターフェイスガイドライン > タイポグラフィ の iOS、macOS、watchOS、または tvOS を参照してください。
ビュープロパティの ScaledMetric プロパティラッパーは、アクセシビリティ設定に応じて自動的に変更されるスケーリングされた値を提供します。適切なサイズのフォントで作業する場合、このプロパティラッパーで、テキスト間またはテキスト周囲の間隔を調整して視覚的なデザインを改善できます。
以下の例では、@ScaledMetric を使用して、body のテキストスタイルを基準にしてテキストビューの周囲の余白値を縮尺拡大し、余白によって追加される空間を識別するために青い境界線を追加します。
プレビューには、アクセシビリティ設定がオンになっていない状態の以下のイメージが表示されます。
environment(_:_:) 修飾子を使用して、プレビュー上のアクセシビリティサイズカテゴリを ContentSizeCategory.accessibilityLarge に設定します。
プレビューには、増加したアクセシビリティサイズと拡大縮小された余白を反映する以下のイメージが表示されます。
func font(Font?) -> some View
このビュー内のテキストのデフォルトのフォントを設定します。
func fontDesign(Font.Design?) -> some View
このビュー内のテキストのフォントデザインを設定します。
func fontWeight(Font.Weight?) -> some View
このビュー内のテキストのフォントの太さを設定します。
func fontWidth(Font.Width?) -> some View
このビュー内のテキストのフォントの幅を設定します。
この環境のデフォルトのフォント。