[SwiftUI] Button の一番簡単な使い方

SwiftUI2021

     

TAGS:

SwiftUI の Button の使い方をあらためてまとめます。

環境&対象

以下の環境で動作確認を行なっています。

  • macOS Monterey 12.4 beta
  • Xcode 13.3
  • iOS 15.4

Button 基本的な使い方

Button を作成/使用するには 以下を設定することが必要です。

・ボタンとして表示されるもの
・押されたときの動作

ボタンとして表示されるものは、label と呼ばれ、動作は、action と呼ばれます。

initializer としては、以下の2つのものがよく使われる気がします。


init(action: () -> Void, label: () -> Label)
init(_ titleKey: LocalizedStringKey, action: @escaping () -> Void)

labelを指定する

label には、SwiftUI の Label を渡すこともできますし、文字列を渡すこともできます。
・Label
・文字列

MEMO
文字列は、厳密には、LocalisedStringKey というもので、文字列の国際化を考慮したものですが、String と考えても、当面、問題はありません。

Label で指定した label

Button(action: {}, label: {
    Label("Title", systemImage: "pencil.tip")
})

以下のような表示になります。ボーダーを付与したりするには、ViewModifier を指定しますが、この記事では説明しません。

LabelButton

Label の使い方は、以下の記事で説明しています。
SwiftUI2021[SwiftUI] Label の使い方 まとめ

文字列で指定したlabel

Button("Title", action: {})

文字列で指定するといかのような表示になります。文字列しかわたしていないので、アイコンは付与されません。

StringButton

Label指定の Button に action を設定

ボタンを押された時の動作は、action に記述します。
action は、label が Label/文字列 どちらを使った指定でも、同じように 記述します。

以下の例では、Xcode のコンソールに "Hello, world!" と表示する設定をしています。

Label を使った Button の action 指定

Button(action: {
    print("Hello, world!")
}, label: {
    Label("Title", systemImage: "pencil.tip")
})

文字列指定の Button に action を設定

Button("Title", action: {
    print("Hello, world!")
})

上記では、action を指定するために、closure を渡していますが、関数を渡すことも可能です。

まとめ

SwiftUI の Button の使い方をあらためて説明してみました。

Button の使い方
  • label に、ボタンがどのように表示されるかを設定する
  • Label, 文字列 のどちらかを使って 表示方法を選択できる
  • action に、ボタンが押下された時の動作を設定する

説明は以上です。
不明な点やおかしな点ありましたら、こちらまで。

コメントを残す

メールアドレスが公開されることはありません。