[SwiftUI]TextFieldに角丸の枠線をつけるには?

SwiftUI

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

TextFieldに角丸の枠線をつける方法を紹介します。

スポンサーリンク

方法

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

TextFieldに角丸の枠線を付ける方法は、2つあります。

textFieldStyle

1つは、textFieldStyleを使う方法です。

まず、TextFieldにtextFieldStyleモディファイアを付与します。

そして、textFieldStyleモディファイアの引数に「.roundedBorder」を指定します。

struct ContentView: View {
    @State var editingText = ""
    var body: some View {
        VStack{
            TextField("your text", text: $editingText)
                .textFieldStyle(.roundedBorder)
        }
    }
}

overlay

もう1つは、overlayを使う方法です。

まず、TextFieldにoverlay修飾子を付与します。

次に、overlay修飾子の引数にRoundedRectangleを指定し、RoundedRectangleの引数「cornerRadius」に角の丸みを指定します。

そして、RoundedRectangleにstrokeモディファイアを適用します。

struct ContentView: View {
    @State var editingText = ""
    var body: some View {
        VStack{
            TextField("your text", text: $editingText)
                .overlay(
                    RoundedRectangle(cornerRadius: /*角の丸み*/)
                        .stroke(/*枠線の色*/, lineWidth: /*枠線の太さ*/)
                )
        }
    }
}

使用例

struct ContentView: View {
    @State var editingText = ""
    var body: some View {
        VStack{
            TextField("your text", text: $editingText)
                .padding()
                .overlay(
                    RoundedRectangle(cornerRadius: 10)
                        .stroke(Color.pink, lineWidth: 1.0)
                )
                .padding()
        }
    }
}

まとめ

TextFieldに角丸の枠線を付ける方法は、次の2つです。

  • textFieldStyleを使う方法
  • overlayを使う方法

コメント

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