2019/12/31

UIButtonのタップで画像を切り替える – Swift5.0

備忘録。

例えばTodoアプリを作る中で、ボタンのタップでチェックマークが切り替わる処理を行う際に使えます。
画像は、ボタンタップでBool変数がtrueかfalseによって変更されます。

仮に3つの画像を切り替えたい場合には、余り(%)を使って、値に応じて出しわけるとかできそうです。

//画像の切り替え
import UIKit
 
class ViewController: UIViewController {
    
    //ストーリーボードでOutlet接続
    @IBOutlet weak var imageView: UIImageView!
    var unchecked: UIImage = UIImage(named: "unchecked")!
    var checked: UIImage = UIImage(named: "checked")!
 
  //フラグを定義
    var flg = false
 
    override func viewDidLoad() {
        super.viewDidLoad()
               
    }
    
    //UIButtonとAction接続
    @IBAction func tapped(sender: AnyObject) {
        if flg {
            imageView.image = unchecked
            flg = false
            print("false")
        }
        else{
            imageView.image = checked
            flg = true
            print("true")
        }
    }
    
    
}

UIImageではなくて、UIButtonの画像を変える場合

これはUIButtonをOutlet接続している前提で、更にAction接続しているイメージです。

    //ボタンタップ時の動作
    @IBAction func tappedButton(_ sender: Any) {
        
        if flg {
            checkedButton.setImage(unchecked, for: UIControl.State())
            flg = false
            print("false")
        } else {
            checkedButton.setImage(checked, for: UIControl.State())
            flg = true
            print("true")
        }

お知らせ

ヒヨコ歩数計という歩きながらヒヨコが育っていくアプリを作って、いろんな方に結構使ってもらっています。
RealmSwift, Admobの動画・インステ・バナー広告、UICollectionView、iOS-Charts、UITableViewを使用しているので、是非ご利用ください!