現在開発中のお絵かきアプリに消しゴム機能を実装しました。
消しゴムと鉛筆のツールは切り替えながら使っていくので、ツールエリアの節約のために
同じボタンでペン、消しゴムツールを切り替えていく処理を実装します。
といっても、キモは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 }
今のところペンの場合黒、消しゴムの場合白で塗ってるだけなのでこんなかんじです。
コメント