Sponsor Link
環境&対象
- 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
・文字列
文字列は、厳密には、LocalisedStringKey というもので、文字列の国際化を考慮したものですが、String と考えても、当面、問題はありません。
Label で指定した label
Button(action: {}, label: {
Label("Title", systemImage: "pencil.tip")
})
以下のような表示になります。ボーダーを付与したりするには、ViewModifier を指定しますが、この記事では説明しません。
Label の使い方は、以下の記事で説明しています。
[SwiftUI] Label の使い方 まとめ
文字列で指定したlabel
Button("Title", action: {})
文字列で指定するといかのような表示になります。文字列しかわたしていないので、アイコンは付与されません。
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 の使い方をあらためて説明してみました。
- label に、ボタンがどのように表示されるかを設定する
- Label, 文字列 のどちらかを使って 表示方法を選択できる
- action に、ボタンが押下された時の動作を設定する
説明は以上です。
不明な点やおかしな点ありましたら、こちらまで。
Sponsor Link