XCode 15.0 日本語化計画:New Human Interface Guideline
スタイル付きの属性コンテンツを表示するテキストビューを作成します。
init(_ attributedContent: AttributedString)
attributedContent
その属性に従ってスタイル設定および表示する属性付き文字列。
このイニシャライザを使用して、指定された AttributedString で見つかった属性に従ってテキストのスタイルを設定します。属性付き文字列内の属性は、ビュー修飾子によって追加されたスタイルよりも優先されます。 たとえば、以下の例の属性付きテキストは、foregroundColor(_:) 修飾子を使用して周囲の VStack 全体で赤を使用しているにもかかわらず、青で表示されます。
SwiftUI は、可能な限りテキスト属性と SwiftUI 修飾子を組み合わせます。たとえば、以下のリストでは、太字と赤色両方であるテキストが作成されます。
SwiftUI の Text ビューは、SwiftUI が太字のテキストとして表示する、StrongEmphaized 値など、Foundation 属性 inlinePresentationIntent で定義されたほとんどのスタイルをレンダリングします。
SwiftUI は、属性スコープ AttributeScopes.SwiftUIAttributes で追加の属性も定義しますが、これには、属性付き文字列の swiftUI プロパティからアクセスできます。SwiftUI 属性は、AttributeScopes.UIKitAttributes や AttributeScopes.AppKitAttributes など、他のフレームワークの同等の属性よりも優先されます。
Markdown 構文で AttributedString を作成すると、Text ビュー内で個別の実行のスタイルを設定できます。
“Thank You!” の周りの ** 構文は、inlinePresentationIntent 属性を値 StrongEmphaized で適用します。前述したように、SwiftUI はこれを太字のテキストとしてレンダリングします。"website" の周りのリンク構文は、リンクであることを示す Text スタイルの link 属性を作成します。デフォルトでは、リンクをクリックまたはタップすると、リンクされた URL がユーザのデフォルトのブラウザで開きます。あるいは、テキストビューの環境に OpenURLAction を配置して、カスタムリンク処理を実行することもできます。
ローカライズされた文字列キー内で Markdown 構文を使用することもできます。つまり、AttributedString を明示的に作成しなくても、上記の例を作成できます。
あなたのアプリの文字列ファイルで、Markdown 構文を使用して、アプリのローカライズされた文字列にスタイルを適用します。^[text](inflect:true) 構文を使用して、ローカライズされた文字列に対して自動文法一致を実行する場合にも、このアプローチを使用します。
SwiftUI での Markdown 構文のサポートの詳細については、init(_:tableName:bundle:comment:) を参照してください。