[Swift]ボタンをタップするごとにボタンの画像を切り替える

現在開発中のお絵かきアプリに消しゴム機能を実装しました。
消しゴムと鉛筆のツールは切り替えながら使っていくので、ツールエリアの節約のために
同じボタンでペン、消しゴムツールを切り替えていく処理を実装します。

といっても、キモはimages.xcassetsにある画像ファイルをどうやって取得するかと、
それをどうやってボタンの画像に設定するのかの2つだけです。

images.xcassetsにある画像ファイルの取得

例えばimages.xcassetsにpenという画像とeraserという画像があるとすると、
penのimageを取得するためには

let image = UIImage(named: "pen")

でOKです。

buttonに画像をセットする方法

適当にいじっていると

button.imageView!.image = image

としたくなりますがこれでは画像は切り替わりません。

button.setImage(image)

とする必要があります。

まとめ

これらを総合して、該当のボタンのTouch Up Insideイベントにこのようなメソッドを割り当てます。

    @IBAction func tapErase(sender: AnyObject) {
        var button = (sender as UIButton)
        if isPenSelected {
            penColor = UIColor(red: 0, green: 0, blue: 0, alpha: 1)
            button.setImage(UIImage(named: "pen"), forState: UIControlState.Normal)
        } else {
            penColor = UIColor(red: 1, green: 1, blue: 1, alpha: 1)
            button.setImage(UIImage(named: "eraser"), forState: UIControlState.Normal)
        }
        isPenSelected = !isPenSelected
    }

今のところペンの場合黒、消しゴムの場合白で塗ってるだけなのでこんなかんじです。


投稿日

カテゴリー:

投稿者:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください