【SwiftUI】ボタンの配置 – アプリ開発

アイキャッチ画像 SwiftUI

今回はButtonの配置方法と使い方について説明します。

Buttonには、

ボタンをタップした時の処理内容を記述する箇所

Buttonの表示について記述する箇所

があります。

それぞれの記述の仕方をしっかりと覚えておきましょう。

1. 環境

今回紹介する内容で動作確認したXcodeとSwiftのVersionは以下になります。

【Xcode】 12.3
【Swift】5.3.2

2. ボタンの定義の仕方

Buttonの引数には”action”と”label”を用意します。

actionには、ボタンをタップした際の処理内容を記述し

labelには、ボタンに表示される内容を記述します。

Button(action: {"処理の為のコード"}, label: {
            "表示内容"
    })

“表示内容”を外に出して、次のように記述することもできます。

Button(action: {"処理の為のコード"}){
            "表示内容"
    }

3. ボタンの配置を行う

実際にコードを書いて、ボタンの配置を行うと次のようになります。

2通りの配置方法を紹介します。

import SwiftUI

struct ContentView: View {
    var body: some View {
        VStack{
            Button(action: {}, label: {
                Text("Button")
            })
            Button(action: {}){
                Text("Button")
            }
        }
    }
}

プレビューモードで確認すると次のようになります。

VStackの中にボタンを二つ配置さているので、縦に並んで配置されています。

“action”には何も記述していないので、このままだとボタンを押しても何も処理は行われません。

ボタンの配置

4. 処理内容について-ボタンをタップしてテキストの値を変更する

ボタンを押した時の処理内容を記述した時の例を挙げます。

1. コード例

コード例を示します。

import SwiftUI

struct ContentView: View {
    @State var text:String = "Button is not tapped"
 
    var body: some View {
        VStack{
            Text(self.text)
            Button(action: {
                self.text = "Button is tapped"
            }, label: {
                Text("Button")
            })
        }
    }
}

ここでは、textという変数を定義しています。

定義したtextを”Text”というテキストを表示するコントロールで表示するようにしつつ、Buttonの”action”内部で変数の中身を変化させるようにしています。

つまり、ボタンが押されるとTextの表示内容が“Button is not tapped”から”Button is tapped”に変化します。

2. “@State”について

変数の定義を行うときに”@State”という属性を使用しています。

@Stateが付けられたプロパティを”State変数“と呼び

プログラム内での処理によって、Viewの表示を変更したい場合はState変数として変数を定義する必要があります。

今回の場合はtextというプロパティの変更をリアルタイムでText Viewに反映させたいので、textをState変数として定義しています。

3. シミュレータで動作確認

シミュレータで動作確認してみます。

まず、ボタンをタップする前のGUIがこちらになります。

Textには”Button is not tapped”と表示されています。

ボタンをタップする前

ボタンをタップした後のGUIがこちらになります。

Textの表示が切り替わり、”Button is tapped”となっています。

ボタンタップした後

5. まとめ

どうでしたでしょうか?

今回はSwiftUIのボタンの使用方法について解説しました。

0

コメント

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