项目作者: BeauNouvelle

项目描述 :
A simple Checkbox
高级语言: Swift
项目地址: git://github.com/BeauNouvelle/SimpleCheckbox.git
创建时间: 2017-08-05T08:54:46Z
项目社区:https://github.com/BeauNouvelle/SimpleCheckbox

开源协议:MIT License

下载


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

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

Swift Package Manager

  • Add https://github.com/BeauNouvelle/SimpleCheckbox.git to your package file.

👩‍🍳 Usage

You can create a new Checkbox either programatically:

  1. 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

  1. checkbox.checkedBorderColor = .blue
  2. checkbox.uncheckedBorderColor = .black

Border Style

  1. checkbox.borderStyle = .circle
  2. checkbox.borderStyle = .square

Checkmark

Checkmark Color

  1. checkbox.checkmarkColor = .blue

Checkmark Style

  1. checkbox.checkmarkStyle = .circle
  2. checkbox.checkmarkStyle = .square
  3. checkbox.checkmarkStyle = .cross
  4. checkbox.checkmarkStyle = .tick

Emoji

  1. 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.

Haptic Feedback

  1. checkbox.useHapticFeedback = true

Events

There are two methods for detecting when a tap event has occured and the isChecked property has changed.

Add Target

  1. checkbox.addTarget(self, action: #selector(checkboxValueChanged(sender:)), for: .valueChanged)
  2. .......
  3. @objc func checkboxValueChanged(sender: Checkbox) {
  4. print("checkbox value change: \(sender.isChecked)")
  5. }

Closure

  1. checkbox.valueChanged = { (isChecked) in
  2. print("checkbox is checked: \(isChecked)")
  3. }

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.

  1. checkbox.increasedTouchRadius = 5 // Default

🎩 Fancy Alternatives

Objective C — BEMCheckbox

Swift — M13Checkbox