SimpleCheckbox 旨在完成其他 iOS 复选框控件未能实现的目标:简单。它没有动画,没有拖慢界面构建器的 IBDesignable,也没有占用性能的绘图方法。

🎉 功能

📒 文档

⚖️ 精心调整的默认值。

✅ 要求

👨‍💻 安装

手动

只需将 Checkbox.swift 拖入您的项目即可开始使用。

Carthage

您可以在这里了解更多关于 Carthage 的信息,并获取设置帮助。

Cocoapods

Podspec 存在,但是由于 SPM 已经推出相当一段时间了,Cocoapods 不再是官方支持的。 SimpleCheckbox 的最新支持版本是 2.2.2

Swift Package Manager

👩‍🍳 用法

您可以通过编程方式创建一个新的 Checkbox

let checkbox = Checkbox(frame: CGRect(x: 50, y: 50, width: 25, height: 25))

或者通过将 UIView 拖入您的视图控制器并将其类分配为 Checkbox,使用界面构建器。

连接 outlet 后,您可以开始自定义。

👩‍🎨 自定义

边框

边框颜色

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

Emoji

checkbox.emoji = ""

注意:设置 emoji 值将导致 simple checkbox 忽略 checkmarkStyle。任何字符串都可以使用,但可能只会显示 1-3 个字符。

触感反馈

checkbox.useHapticFeedback = true

事件

有两种方法可以检测何时发生了点击事件并且 isChecked 属性已更改。

添加 Target

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)")
}

触摸区域

Checkbox 有时看起来比它们的 UIButton 和 UISwitch 同类产品更小,这可能会使它们难以激活。

SimpleCheckbox 提供了一种调整触摸半径的方法,使其超出其框架。设置 increasedTouchRadius 将按该数量增加触摸半径。

checkbox.increasedTouchRadius = 5 // Default

🎩 炫酷的替代方案

Objective C — BEMCheckbox

Swift — M13Checkbox