Version
Xcode: Version 9.2
事前準備
check boxのオンとオフのボタンを用意して、Assetsの中に入れておく
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
}
}
}
ボタンを配置
ストーリーボードにボタンを配置しておく
配置したボタンにカスタムクラスを設定する
チェックボックスのオンとオフ
ボタンからアクションを作成して、_ sender: CheckBoxにして、プロパティを参照
@IBAction func checkView(_ sender: CheckBox) {
print(sender.isChecked)
}
参考
xcode - How to create radio buttons and checkbox in swift (iOS)? - Stack Overflow