iOS
Swift3.0

どうやってswiftでチェックボックス実装するの? #swift

Version

Xcode: Version 9.2

事前準備

check boxのオンとオフのボタンを用意して、Assetsの中に入れておく

png.png

UIButtonを拡張したチェックボックスのボタンクラスを作成する

  • CheckBox.swift
import UIKit

class CheckBox: UIButton {
    // Images
    let checkedImage = UIImage(named: "ico_check_on")! as UIImage
    let uncheckedImage = UIImage(named: "ico_check_off")! as UIImage

    // Bool property
    var isChecked: Bool = false {
        didSet{
            if isChecked == true {
                self.setImage(checkedImage, for: UIControlState.normal)
            } else {
                self.setImage(uncheckedImage, for: UIControlState.normal)
            }
        }
    }

    override func awakeFromNib() {
        self.addTarget(self, action:#selector(buttonClicked(sender:)), for: UIControlEvents.touchUpInside)
        self.isChecked = false
    }

    func buttonClicked(sender: UIButton) {
        if sender == self {
            isChecked = !isChecked
        }
    }
}

ボタンを配置

ストーリーボードにボタンを配置しておく

配置したボタンにカスタムクラスを設定する

Main.storyboard.png

チェックボックスのオンとオフ

ボタンからアクションを作成して、_ sender: CheckBoxにして、プロパティを参照

    @IBAction func checkView(_ sender: CheckBox) {

        print(sender.isChecked)

    }

参考

xcode - How to create radio buttons and checkbox in swift (iOS)? - Stack Overflow