UIButtonを押したときの状態を押すたびに切り替える
押すたびに状態を切り替えるコード
※ 前提として「UIButtonをストーリーボードで配置して機能させる」で設置したボタンがある状態での手順となります。 ボタンの設置がまだの場合は上記を参照ください。
スイッチするための準備
押すたびに状態を変えるには、変数を使って状態を変えるという方法をとります。 ここでは、Bool型のswitch_flgという変数を用意してボタンを押すたびに、「true」「false」と繰り返しなるようにします。 ViewController.swiftの中に以下のコードを追記します。
var switch_flg:Bool = false // 追記
場所は以下の部分。class ViewController: UIViewController { ... }
の中で、メソッドの中ではない場所です。
間違って、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
}
}
記述するとこのようになります。
アプリを実行して処理を確認してみる
Xcodeの「▷」ボタンを押してアプリを実行してみましょう。
アプリが起動したら、ボタンを何回か押してみましょう。
デバッグコンソールに「ボタンが押されました」「true」「ボタンが押されました」「false」と繰り返し出力されたら成功です。
このようなボタンをスイッチさせる機能は、例えば音楽プレーヤーの「再生」「停止」のような1つのボタンで状態を切り替える際に使うことができます。