イニシャライザ


init(_:)


スタイル付きの属性コンテンツを表示するテキストビューを作成します。



iOS 15.0+ iPadOS 15.0+ macOS 12.0+ Mac Catalyst 15.0+

tvOS 15.0+ WatchOS 8.0+ VisionOS 1.0+


init(_ attributedContent: AttributedString)






パラメータ


attributedContent

その属性に従ってスタイル設定および表示する属性付き文字列。



議論


このイニシャライザを使用して、指定された AttributedString で見つかった属性に従ってテキストのスタイルを設定します。属性付き文字列内の属性は、ビュー修飾子によって追加されたスタイルよりも優先されます。 たとえば、以下の例の属性付きテキストは、foregroundColor(_:) 修飾子を使用して周囲の VStack 全体で赤を使用しているにもかかわらず、青で表示されます。


  1. var content: AttributedString {
  2. var attributedString = AttributedString("Blue text")
  3. attributedString.foregroundColor = .blue
  4. return attributedString
  5. }
  6. var body: some View {
  7. VStack {
  8. Text(content)
  9. Text("Red text")
  10. }
  11. .foregroundColor(.red)
  12. }




SwiftUI は、可能な限りテキスト属性と SwiftUI 修飾子を組み合わせます。たとえば、以下のリストでは、太字と赤色両方であるテキストが作成されます。


  1. var content: AttributedString {
  2. var content = AttributedString("Some text")
  3. content.inlinePresentationIntent = .stronglyEmphasized
  4. return content
  5. }
  6. var body: some View {
  7. Text(content).foregroundColor(Color.red)
  8. }


SwiftUI の Text ビューは、SwiftUI が太字のテキストとして表示する、StrongEmphaized 値など、Foundation 属性 inlinePresentationIntent で定義されたほとんどのスタイルをレンダリングします。


重要


Text は、AttributeScopes.FoundationAttributes 内で定義された属性のサブセットのみを使用します。Text は、lineBreaksoftBreak を除くすべての InlinePresentationIntent 属性をレンダリングします。また、link 属性もクリック可能なリンクとしてレンダリングされます。Text は、属性付き文字列内の他の Foundation 定義の属性を無視します。


SwiftUI は、属性スコープ AttributeScopes.SwiftUIAttributes で追加の属性も定義しますが、これには、属性付き文字列の swiftUI プロパティからアクセスできます。SwiftUI 属性は、AttributeScopes.UIKitAttributesAttributeScopes.AppKitAttributes など、他のフレームワークの同等の属性よりも優先されます。


Markdown 構文で AttributedString を作成すると、Text ビュー内で個別の実行のスタイルを設定できます。


  1. let content = try! AttributedString(
  2. markdown: "**Thank You!** Please visit our [website](http://example.com).")
  3. var body: some View {
  4. Text(content)
  5. }


“Thank You!” の周りの ** 構文は、inlinePresentationIntent 属性を値 StrongEmphaized で適用します。前述したように、SwiftUI はこれを太字のテキストとしてレンダリングします。"website" の周りのリンク構文は、リンクであることを示す Text スタイルの link 属性を作成します。デフォルトでは、リンクをクリックまたはタップすると、リンクされた URL がユーザのデフォルトのブラウザで開きます。あるいは、テキストビューの環境に OpenURLAction を配置して、カスタムリンク処理を実行することもできます。




ローカライズされた文字列キー内で Markdown 構文を使用することもできます。つまり、AttributedString を明示的に作成しなくても、上記の例を作成できます。


  1. var body: some View {
  2. Text("**Thank You!** Please visit our [website](https://example.com).")
  3. }


あなたのアプリの文字列ファイルで、Markdown 構文を使用して、アプリのローカライズされた文字列にスタイルを適用します。^[text](inflect:true) 構文を使用して、ローカライズされた文字列に対して自動文法一致を実行する場合にも、このアプローチを使用します。


SwiftUI での Markdown 構文のサポートの詳細については、init(_:tableName:bundle:comment:) を参照してください。















トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ