[SwiftUI]四角形(Rectangle, RoundedRectangle)内にテキストを表示するには?

SwiftUI

どうも、ちょげ(@chogetarou)です。

RectangleやRoundedRectangleなどの四角形の中にテキストを表示する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

四角形内にテキストを表示する方法は、3つあります。

background

1つ目は、background修飾子を使う方法です。

まず、Textにbackground修飾子を付与します。

そして、background修飾子の引数にRectangleやRoundedRectangleを指定します。

Text("テキスト")
    .background(
        Rectangle() //もしくはRoundedRectangle
    )

使用例

struct ContentView: View {
    var body: some View {
        VStack {
            Text("Hello, Swift")
                .foregroundColor(.white)
                .padding()
                .background(
                    Rectangle()
                        .fill(.blue)
                )
        }
    }
}

overlay

2つ目は、overlay修飾子を使う方法です。

まず、RectangleやRoundedRectangleにoverlay修飾子を付与します。

そして、overlay修飾子の引数にTextを指定します。

Rectangle()
    .overlay(
        Text("テキスト")
    )

使用例

struct ContentView: View {
    var body: some View {
        VStack {
            RoundedRectangle(cornerRadius: 5)
                .fill(.red)
                .frame(width: 300, height: 100)
                .overlay(
                    Text("Hello, SwiftUI")
                        .foregroundColor(.white)
                )
        }
    }
}

ZStack

3つ目は、ZStackを使う方法です。

具体的には、ZStackのクロージャに、四角形(Rectangle, RoundedRectangle)とTextを指定します。

指定する順番は、最初に四角形、その次にTextです。

ZStack {
    Rectangle()
    Text("テキスト")
}

使用例

struct ContentView: View {
    var body: some View {
        ZStack {
            Rectangle()
                .frame(width: 200, height: 100)
            Text("Hello, SwiftUI")
                .foregroundColor(.white)
        }
    }
}

まとめ

四角形の中にテキストを表示する方法は、次の3つです。

  • background修飾子を使う方法
  • overlay修飾子を使う方法
  • ZStackを使う方法

コメント

タイトルとURLをコピーしました