LoginSignup
0
1

More than 1 year has passed since last update.

【SwiftUI】secureFieldの枠線を下線にしてみた

Posted at

本日は、SwiftUI の
1.secureFieldの書き方
2.secureFielsの枠線スタイルを下線に変更

の2点についてお話しします。

実行環境

1.Swift praygrounds バージョン4.0 (1567.22)
2.SwiftUI

(XcodeバージョンVersion 13.2.1でも動くことを確認)

secureFieldの基本的な書き方

コード例

secureFieldview1
import SwiftUI
import PlaygroundSupport

struct ContentView: View {
    @State var password1  = "" 
    @State var password2  = "" 
    var body: some View {
        VStack {
            SecureField ("パスワードを入力1", text: $password1, onCommit:{})
                .textFieldStyle(PlainTextFieldStyle())
                .font(.system(size: 20))
                .padding(.all)


            SecureField ("パスワードを入力2", text: $password2, onCommit:{})
                .textFieldStyle(RoundedBorderTextFieldStyle())
                .font(.system(size: 20))
                .padding(.all)


        }
    }
}

コード説明

secureField

第一引数は、テキストフィールド内に表示する文字

第二引数は、@Stateで宣言したString型の変数を宣言
@Stateじゃないと中身が書き換えられないのでエラーになるという認識)

第3引数には、入力が完了した(returnがタップされた)タイミングで行いたい処理を
クロージャーで指定
(ここは自分は全くわからなかったので違うサイトの説明をそのまま引用しました。)

.textFieldStyle(PlainTextFieldStyle())

ここでは、PlainTextFieldStyleで枠線なしスタイルを指定

.textFieldStyle(RoundedBorderTextFieldStyle())

ここでは、RoundedBorderTextFieldStyleで枠線スタイルを指定

実行結果

スクリーンショット 2022-01-15 12.24.29.png

secureFieldのスタイルを下線に

コード例


import SwiftUI
import PlaygroundSupport

struct ContentView: View {
    @State var password3  = ""
    var body: some View {
        VStack {


            SecureField ("パスワードを入力3", text: $password3, onCommit:{})
                .textFieldStyle(PlainTextFieldStyle())
                .font(.system(size: 20))
                .padding(.all)

            Divider()
                .padding(.horizontal)
                }
    }
}

コード説明

secureFiled自体に下線スタイルは存在しません。
そのため、枠線なしスタイル選択し自分で下線を引く必要があります。

そのため
secureFieldのtextFieldStyleは
枠線なしスタイルのPlainTextFieldStyleを使います。
その上で今回は

Divider()

を使用します。

Dividerは区切り線を引いてくれます。
そのためPaddingでうまく長さを調整してあげて、
VStack内でDividerを使えば
以下の実行結果のように下線スタイルにすることができます。

実行結果

スクリーンショット 2022-01-15 15.05.39.png

他にうまい下線スタイルにする方法があればコメントで教えてください。
コードや説明などの指摘もお願いいたします。

参考記事

【SwiftUI】SecureFieldでパスワード表示の入力欄を実装する方法を解説

SwiftUIで区切り線を引く方法【Divider】

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1