SimpleCheckbox

master

A simple Checkbox
thierryH91200/SimpleCheckbox

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

📒 Documentation

⚖️ Carefully tuned default values.

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 your Cartfile.

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

Objective C — BEMCheckbox

Swift — M13Checkbox

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.

Description

  • Swift Tools 5.2.0

Dependencies

  • None
Last updated: Tue Jun 08 2021 16:57:34 GMT-0500 (GMT-05:00)