UIButtonを押したときの状態を押すたびに切り替える

[Swift] [UIKit] [UIButton]

押すたびに状態を切り替えるコード

※ 前提として「UIButtonをストーリーボードで配置して機能させる」で設置したボタンがある状態での手順となります。 ボタンの設置がまだの場合は上記を参照ください。

スイッチするための準備

押すたびに状態を変えるには、変数を使って状態を変えるという方法をとります。 ここでは、Bool型のswitch_flgという変数を用意してボタンを押すたびに、「true」「false」と繰り返しなるようにします。 ViewController.swiftの中に以下のコードを追記します。

var switch_flg:Bool = false // 追記

場所は以下の部分。class ViewController: UIViewController { ... }の中で、メソッドの中ではない場所です。

/data/uploads/20200423015433.png

間違って、viewDidLoadや、touchButton1メソッドの中には書かないようにしましょう。

IBActionのメソッド内に切り替えを行うコードを記述する

プログラミングは、コードを書かなければ期待したとおりに動いてはくれませんが、コードを書くことによって思い通りに動かすことができます。 ボタンを押すたびに、「true」「false」と繰り返しなるように以下のコードをtouchButton1メソッド内に記述しましょう。

  @IBAction func touchButton1(_ sender: Any) {
    print("ボタンが押されました")
    if ( switch_flg ) {
      print("false")
      switch_flg = false
    }
    else {
      print("true")
      switch_flg = true
    }
  }

記述するとこのようになります。

/data/uploads/20200423020350.png

アプリを実行して処理を確認してみる

Xcodeの「▷」ボタンを押してアプリを実行してみましょう。

/data/uploads/20200423013525.png

アプリが起動したら、ボタンを何回か押してみましょう。

/data/uploads/20200423020521.png

デバッグコンソールに「ボタンが押されました」「true」「ボタンが押されました」「false」と繰り返し出力されたら成功です。

このようなボタンをスイッチさせる機能は、例えば音楽プレーヤーの「再生」「停止」のような1つのボタンで状態を切り替える際に使うことができます。

Posted_at:2020-04-23