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.
🎉 Features
✅ Requirements
- Xcode 11
- iOS 10+
- Swift 5.1
👨💻 Installation
Manual
Just drag Checkbox.swift into your project to start using it.
Carthage
- Add
github "BeauNouvelle/SimpleCheckbox"
to yourCartfile
.
You can learn more about Carthage and get help setting it up here.
Cocoapods
- Add pod
SimpleCheckbox
to your pod file. - Add
import SimpleCheckbox
to the top of your files in where you wish to use it.
Swift Package Manager
- Add
https://github.com/BeauNouvelle/SimpleCheckbox.git
to your package file.
👩🍳 Usage
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.
👩🎨 Customization
Border
Border Color
checkbox.checkedBorderColor = .blue
checkbox.uncheckedBorderColor = .black
Border Style
checkbox.borderStyle = .circle
checkbox.borderStyle = .square
Checkmark
Checkmark Color
checkbox.checkmarkColor = .blue
Checkmark Style
checkbox.checkmarkStyle = .circle
checkbox.checkmarkStyle = .square
checkbox.checkmarkStyle = .cross
checkbox.checkmarkStyle = .tick
Haptic Feedback
checkbox.useHapticFeedback = true
Events
There are two methods for detecting when a tap event has occured and the isChecked
property has changed.
Add Target
checkbox.addTarget(self, action: #selector(checkboxValueChanged(sender:)), for: .valueChanged)
.......
@objc func checkboxValueChanged(sender: Checkbox) {
print("checkbox value change: \(sender.isChecked)")
}
Closure
checkbox.valueChanged = { (isChecked) in
print("checkbox is checked: \(isChecked)")
}
Touch Area
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
🎩 Fancy Alternatives
Cocoapods
I'm unable to continue supporting cocoapods with this project as I no longer have access the email account that was registered with this pod. All attempts to contact the cocoapods team to claim SimpleCheckbox pod have been ignored.