SimpleCheckbox aims to accomplish what other ios checkbox controls haven't. To be simple. There's no animations, no IBDesignable to slow down interface builder, and no performance heavy draw methods.
📒 Documentation
⚖️ Carefully tuned default values.
- Xcode 11
- iOS 10+
- Swift 5.1
Just drag Checkbox.swift into your project to start using it.
- Add
github "BeauNouvelle/SimpleCheckbox"
to yourCartfile
.
You can learn more about Carthage and get help setting it up here.
Podspec is present, however with SPM out for quite a while now, Cocoapods is no longer officially supported. Latest supported version of SimpleCheckbox is 2.2.2
- Add
https://github.com/BeauNouvelle/SimpleCheckbox.git
to your package file.
You can create a new Checkbox either programatically:
let checkbox = Checkbox(frame: CGRect(x: 50, y: 50, width: 25, height: 25))
Or using interface builder by dragging a UIView
into your view controller and assigning its class to Checkbox
.
After hooking up an outlet you can begin customization.
checkbox.checkedBorderColor = .blue
checkbox.uncheckedBorderColor = .black
checkbox.borderStyle = .circle
checkbox.borderStyle = .square
checkbox.checkmarkColor = .blue
checkbox.checkmarkStyle = .circle
checkbox.checkmarkStyle = .square
checkbox.checkmarkStyle = .cross
checkbox.checkmarkStyle = .tick
checkbox.emoji = "❌"
NOTE: Setting the emoji value will cause simple checkbox to ignore the checkmarkStyle. Any string will work, but only 1-3 characters may be displayed.
checkbox.useHapticFeedback = true
There are two methods for detecting when a tap event has occured and the isChecked
property has changed.
checkbox.addTarget(self, action: #selector(checkboxValueChanged(sender:)), for: .valueChanged)
.......
@objc func checkboxValueChanged(sender: Checkbox) {
print("checkbox value change: \(sender.isChecked)")
}
checkbox.valueChanged = { (isChecked) in
print("checkbox is checked: \(isChecked)")
}
Checkboxs can sometimes appear smaller than their UIButton and UISwitch counterparts which can make them difficult to activate.
SimpleCheckbox has a way for you to tune the touch raduis to extend beyond its frame. Setting increasedTouchRadius will increase the touch radius by that amount.
checkbox.increasedTouchRadius = 5 // Default