しょぼしょぼプログラマ雑記

自分のための備忘録。 開発記録など掲載してます。 質問・ご意見・ご感想等はTwitter ( https://twitter.com/yun_hokuto ) までお気軽にどうぞ。

UIButtonをトグルさせる

iPhoneアプリの開発では、On/Offスイッチを使う際に UISwitch を使用するのが基本です

ですが、画像ボタン( UIButton )のOn/Offスイッチを使用したい場合も多々あります

通常「ボタンをトグルさせる」と言いますが、UIButton を使ったトグルボタンの作成方法を掲載されている記事を見つけましたので、ご紹介させていただきます。


iOS プログラマー's メモ: UIButton : トグルボタンを作成する


ポイントは3点だと思います。

①.ボタンに画像を設定する

// ボタンの背景画像(通常時(非選択時))
[toggleButton_ setBackgroundImage:[UIImage imageNamed:@"blue.png"]
                         forState:UIControlStateNormal];
    
// ボタンの背景画像(選択時)
[toggleButton_ setBackgroundImage:[UIImage imageNamed:@"red.png"]
                         forState:UIControlStateSelected];

②タップ時のメソッドを設定する

// ボタンタップ時のメソッド
[toggleButton_ addTarget:self
                  action:@selector(didTapToggle:)
        forControlEvents:UIControlEventTouchUpInside];

③.タップ時のイベントを作成

// ボタンタップ時
- (IBAction)didTapToggle:(id)sender
{
    toggleButton_.selected = !toggleButton_.selected;
}

①で画像を通常と選択色を設定するところが上手ですね
②でタップ時のメソッドをボタンに追加しています
③でボタン選択時にトグル処理を追加していますが、反転させているところも上手だと思います。