iOSアプリを開発していてブラウザ標準のようなチェックボックスを使いたいと思ったことはありませんか?そんな時のためにシンプルなデザインのswift製チェックボックスライブラリを作成しました。各種プロパティを設定することでデザインもある程度自由に変更することができます。
CocoaPodsでインストールできるのでとても簡単です。それでは早速インストールの手順を説明します。
Installation
CocoaPods
Podfileに
use_frameworks!
pod 'YSCheckBox', :git => 'https://github.com/sekies/YSCheckBox.git'
と追加します。
pod install します。
Usage
YSCheckBoxをインポートします。
import YSCheckBox
任意のUIViewContorollerでYSCheckBoxViewControllerDelegate
プロトコルに準拠します。
class ViewController: UIViewController,YSCheckBoxViewControllerDelegate {
YSCheckBoxViewController
インスタンスを生成します。生成時にチェックボックスのラベルを配列で指定します。
let checkBox = YSCheckBoxViewController(labels: ["Orange","GrapeFruits","Banana"])
delegateと各種デザインプロパティを設定します。必須となるのはdelegateのみです。
checkBox.delegate = self
checkBox.font = UIFont.systemFont(ofSize: 18)
checkBox.labelColor = UIColor(red: 0, green: 122 / 255, blue: 1, alpha: 1)
checkBox.labelMargin = 0
checkBox.lineWidth = 1
checkBox.checkBoxSelectedFillSize = 1
checkBox.checkBoxMargin = 6
checkBox.checkBoxCorner = 7
checkBox.checkBoxStroke = .lightGray
checkBox.checkBoxCheckStroke = .white
checkBox.checkBoxSelectedFill = UIColor(red: 0, green: 122 / 255, blue: 1, alpha: 1)
checkBox.checkBoxBGFill = UIColor(red: 0.95, green: 0.95, blue: 0.95, alpha: 1)
親UIViewControllerに生成したYSCheckBoxViewControllerをaddChildしコンテナとなるUIViewにYSCheckBoxViewControllerのviewをaddSubviewします。チェックボックスの位置はコンテナとなるUIViewに依存します。
addChild(checkBox)
checkBox.view.frame = container.bounds
container.addSubview(checkBox.view)
checkBox.didMove(toParent: self)
デリゲートメソッドを実装します。チェックボックスを選択するとこのメソッドが呼ばれます。YSCheckBoxViewController生成時に追加した配列の順にBoolが割り振られます。
func didYSCeckBoxSelect(checks: [Bool]) {
print(checks)
}
コードの全体像です。
import UIKit
import YSCheckBox
class ViewController: UIViewController, YSCheckBoxViewControllerDelegate {
@IBOutlet weak var container: UIView!
override func viewDidLoad() {
super.viewDidLoad()
let checkBox = YSCheckBoxViewController(labels: ["Orange","GrapeFruits","Banana"])
checkBox.delegate = self
checkBox.font = UIFont.systemFont(ofSize: 18)
checkBox.labelColor = UIColor(red: 0, green: 122 / 255, blue: 1, alpha: 1)
checkBox.labelMargin = 0
checkBox.lineWidth = 1
checkBox.checkBoxSelectedFillSize = 1
checkBox.checkBoxMargin = 6
checkBox.checkBoxCorner = 7
checkBox.checkBoxStroke = .lightGray
checkBox.checkBoxCheckStroke = .white
checkBox.checkBoxSelectedFill = UIColor(red: 0, green: 122 / 255, blue: 1, alpha: 1)
checkBox.checkBoxBGFill = UIColor(red: 0.95, green: 0.95, blue: 0.95, alpha: 1)
addChild(checkBox)
checkBox.view.frame = container.bounds
container.addSubview(checkBox.view)
checkBox.didMove(toParent: self)
}
func didYSCeckBoxSelect(checks: [Bool]) {
print(checks)
}
}