[SwiftUI]TextFieldの高さを変えるには?

SwiftUI

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

TextFieldの高さを変える方法を紹介します。

スポンサーリンク

方法

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

TextFieldの高さを変える方法は、2つあります。

font

1つは、fontモディファイアを使います。

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

そして、fontモディファイアの引数に「.system()」を指定し、.systemの引数「size」にテキストのサイズを指定します。

TextField("",text: $editingText)
    .font(.system(size: /*テキストのサイズ*/))

TextFieldの高さは、自動でテキストのサイズに調整されるようになっています。

使用例

struct ContentView: View {
    @State var editingText = ""
    
    var body: some View {
        VStack {
            TextField("Your Text",text: $editingText)
                .padding()
                .font(.system(size: 50))
                .textFieldStyle(RoundedBorderTextFieldStyle())
                .padding()
        }
    }
}

frame

もう1つは、frameモディファイアを使う方法です。

まず、TextFieldにframeモディファイアを指定します。

そして、frameモディファイアの引数「height」に高さを指定します。

TextField("",text: $editingText)
    .frame(height : /*高さ*/)

frameモディファイアでは、textFieldStyle修飾子の「RoundedBorderTextFieldStyle」が上手く機能しません。

使用例

struct ContentView: View {
    @State var editingText = ""
    
    var body: some View {
        VStack {
            TextField("Your Text",text: $editingText)
                .padding()
                .frame(height : 100)
                .overlay(
                    RoundedRectangle(cornerRadius: 5)
                            .stroke(Color.red, lineWidth: 1)
                )
                .padding()
        }
    }
}

まとめ

TextFieldの高さを変える方法は、次の2つです。

  • fontモディファイアでテキストサイズを指定する方法
  • frameモディファイアの引数「height」に高さを指定する方法

コメント

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