本文へスキップ
BecomeCoder

Swift(iOSアプリ)コース · 第5章 SwiftUI入門 ― 画面を作る · レッスン23

Button ― タップに反応する

ブラウザで完結

導入

アプリは「触ると反応する」もの。その主役が Button です。押されたときにやりたいことを書けます。

説明

Button("ラベル") { 押されたときの処理 } で作ります。{ ... } の中はクロージャ(第4章)で、タップされると実行されます。

struct ContentView: View {
    var body: some View {
        VStack(spacing: 20) {
            Button("ふつうのボタン") {
                print("タップされた")
            }
            Button("目立つボタン") {
                print("重要な操作")
            }
            .buttonStyle(.borderedProminent)

            Button {
                print("アイコンボタン")
            } label: {
                Label("お気に入りに追加", systemImage: "star.fill")
            }
        }
        .padding()
    }
}

.buttonStyle(.borderedProminent) を付けると、塗りつぶしの目立つボタンになります(.bordered は枠付き)。ラベルにアイコンを使いたいときは、Button { 処理 } label: { ... } の形でViewを組み合わせられます。

次の章では、このボタンで 画面の状態を変える(数を増やす・表示を切り替える)方法を学びます。そこからアプリが「動く」ようになります。

やってみよう

プレビューのボタンを実際にタップしてみましょう。.buttonStyle(.borderedProminent) を別のボタンに付けたり外したりして、見た目の違いを確かめてください。

演習

「送信」というラベルのボタンを1つ作り、.buttonStyle(.borderedProminent) で目立たせて表示してください。

ヒント1を見る

Button("送信") { print("送った") }

ヒント2を見る

そのうしろに .buttonStyle(.borderedProminent) を付けます。

実際に動かしてみよう

本文のサンプルや演習のコードは、コードブロック右上の「コピー」ボタンでコピーして、下のエディタに貼り付ければそのまま実行できます。

Swift / SwiftUI — ブラウザ内で実行(学習用)

Swiftの教材サブセットを動かす学習用ランナーを読み込みます。ふつうのコードは print の出力を表示し、SwiftUI(struct: View)を書くと右にiPhone風のライブプレビューを描画します(本物のXcode/Swiftコンパイラではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。