Structure

Text テキスト

A view that displays one or more lines of read-only text. あるビュー、それは1行以上の読出し専用テキストを表示します。

Declaration 宣言

@frozen struct Text

Overview 概要

A text view draws a string in your app’s user interface using a body font that’s appropriate for the current platform. You can choose a different standard font, like title or caption, using the font(_:) view modifier.


Text("Hamlet")
    .font(.title)

A text view showing the name “Hamlet” in a title

If you need finer control over the styling of the text, you can use the same modifier to configure a system font or choose a custom font. あなたがより優れた制御をテキストのスタイル指定に対して必要とするならば、あなたは同じ修飾子を使ってシステムフォントを構成設定するまたはあつらえのフォントを選ぶことが可能です。 You can also apply view modifiers like bold() or italic() to further adjust the formatting.


Text("by William Shakespeare")
    .font(.system(size: 12, weight: .light, design: .serif))
    .italic()

A text view showing by William Shakespeare in a 12 point, light, italic,

To apply styling within specific portions of the text, you can create the text view from an AttributedString, which in turn allows you to use Markdown to style runs of text. You can mix string attributes and SwiftUI modifiers, with the string attributes taking priority.


let attributedString = try! AttributedString(
    markdown: "_Hamlet_ by William Shakespeare")


var body: some View {
    Text(attributedString)
        .font(.system(size: 12, weight: .light, design: .serif))
}

A text view showing Hamlet by William Shakespeare in a 12 point, light,

A text view always uses exactly the amount of space it needs to display its rendered contents, but you can affect the view’s layout. テキストビューは常に正確にそれの描出された内容を表示するのにそれが必要とする空きの量を使います、しかしあなたはビューのもつレイアウトに影響を与えられます。 For example, you can use the frame(width:height:alignment:) modifier to propose specific dimensions to the view. If the view accepts the proposal but the text doesn’t fit into the available space, the view uses a combination of wrapping, tightening, scaling, and truncation to make it fit. ビューはその提案を受け入れるがテキストがその利用可能な空きへと収まらないならば、ビューは、自動改行(ワードラップ)、締める、拡大縮小、そして切り詰めるの組み合わせを使ってそれを収まるようにします。 With a width of 100 points but no constraint on the height, a text view might wrap a long string:


Text("To be, or not to be, that is the question:")
    .frame(width: 100)

A text view showing a quote from Hamlet split over three

Use modifiers like lineLimit(_:), allowsTightening(_:), minimumScaleFactor(_:), and truncationMode(_:) to configure how the view handles space constraints. For example, combining a fixed width and a line limit of 1 results in truncation for text that doesn’t fit in that space:


Text("Brevity is the soul of wit.")
    .frame(width: 100)
    .lineLimit(1)

A text view showing a truncated quote from Hamlet starting Brevity is t

Localizing Strings 文字列をローカライズする

If you initialize a text view with a string literal, the view uses the init(_:tableName:bundle:comment:) initializer, which interprets the string as a localization key and searches for the key in the table you specify, or in the default table if you don’t specify one.


Text("pencil") // Searches the default table in the main bundle.

For an app localized in both English and Spanish, the above view displays “pencil” and “lápiz” for English and Spanish users, respectively. If the view can’t perform localization, it displays the key instead. For example, if the same app lacks Danish localization, the view displays “pencil” for users in that locale. Similarly, an app that lacks any localization information displays “pencil” in any locale. 英語とスペイン語の両方でローカライズされたアプリに対して、上のビューは “pencil” と “lápiz” を英語とスペイン語のユーザにそれぞれ表示します。ビューがローカライゼーションを実行できないならば、それはキーを代わりに表示します。例えば、同じアプリがデンマーク語ローカライゼーションを欠いているならば、ビューは “pencil” をユーザにそのロケールにおいて表示します。同様に、あらゆるローカライゼーション情報を欠いているアプリは、“pencil” をどんなロケールにおいても表示します。

To explicitly bypass localization for a string literal, use the init(verbatim:) initializer.


Text(verbatim: "pencil") // Displays the string "pencil" in any locale.

If you intialize a text view with a variable value, the view uses the init(_:) initializer, which doesn’t localize the string. However, you can request localization by creating a LocalizedStringKey instance first, which triggers the init(_:tableName:bundle:comment:) initializer instead:


// Don't localize a string variable...
Text(writingImplement)


// ...unless you explicitly convert it to a localized string key.
Text(LocalizedStringKey(writingImplement))

When localizing a string variable, you can use the default table by omitting the optional initialization parameters — as in the above example — just like you might for a string literal. ある文字列変数をローカライズする場合、あなたは随意である初期化パラメータを省略することによって省略時のテーブルを使用できます — 上の例でのように — あなたが文字列リテラルにしたかもしれないように。

Topics 話題

Creating a Text View from a String

Creating a Text View from an Attributed String

Creating a Text View for a Date

Creating a Text View with Formatting

Creating a Text View from an Image

Choosing a Font フォントを選ぶ

Styling the View’s Text ビューのもつテキストにスタイルをつける

Fitting Text into Available Space テキストを利用可能な空間へと収める

Handling Multiline Text 複数行テキストを取り扱う

Controlling the Layout Direction レイアウト方向を制御する

Configuring VoiceOver

Providing Accessibility Information

Combining Text Views テキストビューを組み合わせる

Comparing Text Views テキストビューを比較する

Relationships 関係

Conforms To 次に準拠

See Also 参照

Text Display