BEMCheckBox 是一个开源库,用于创建美观的、高度可定制的、动画化的复选框,适用于 iOS。
了解更多关于 BEMCheckBox 项目、许可、支持等方面的信息。
查看 许可证。您可以在个人或商业项目中自由更改和使用此库。不需要归功,但我们会非常感激。一点“谢谢!”(或类似的留言)总是受欢迎的。如果您在您的应用中使用了 BEMCheckBox,请让我们知道!
如果您需要任何帮助或想要讨论该项目,请加入我们的 Gitter Gitter。
该项目包含的 iOS 示例应用演示了一种正确设置和使用 BEMCheckBox 的方法。它还提供了在应用内自定义复选框的可能性。
BEMCheckBox 现在可以与 React Native 一起使用:[React-Native-BEMCheckBox](https://github.com/torifat/react-native-bem-check-box)
只需几个简单的步骤即可将 BEMCheckBox 安装并设置到您的项目中。
最后,您可以手动安装 BEMCheckBox。只需将 Classes 文件夹拖放到您的 Xcode 项目中。这样做时,请确保勾选 "将项目复制到目标组的文件夹中" 复选框。
将 BEMCheckBox 设置到项目中非常简单。它是根据 UISwitch
来设计的。事实上,您只需在项目中用 BEMCheckBox 替换 UISwitch
的实例即可!
以下是可以运行的步骤:
将 "BEMCheckBox.h"
导入您的视控制器头文件
#import "BEMCheckBox.h"
BEMCheckBox 可以通过编程方式(通过代码)或通过接口构建器(Storyboard 文件)进行初始化。根据您的项目选择最合适的方法。
编程初始化
只需将以下代码添加到您的实现中(通常在视图控制器的 viewDidLoad
方法中)。
BEMCheckBox *myCheckBox = [[BEMCheckBox alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];
[self.view addSubview:myCheckBox];
接口构建器初始化
1 - 将 UIView
拖到您的 UIViewController
中。
2 - 将新 UIView
的类更改为 BEMCheckBox
。
3 - 选择 BEMCheckBox
并打开属性检查器。大多数可自定义的属性都可以很容易地从属性检查器中进行设置。示例应用演示了这一功能。
以下列出了所有可用 BEMCheckBox 的方法和属性。
on
属性与 UISwitch
相似,BEMCheckBox 提供了一个布尔属性 on
,允许您检索和设置(无动画)一个确定 BEMCheckBox 对象是处于 on
状态还是 off
状态的值。默认为 NO
。
示例用法
self.myCheckBox.on = YES;
setOn:animated:
与 UISwitch
相似,BEMCheckBox 提供了一个实例方法 setOn:animated:
,可以将复选框的状态设置为开或关,可选地动画过渡。
示例用法
[self.myCheckBox setOn:YES animated:YES];
实例方法 reload
允许您重新绘制整个复选框,保持当前的 on
值。
示例用法
[self.myCheckBox reload]
可以将 BEMCheckBox 轻松分组以形成单选按钮功能。这将自动管理组中每个复选框的状态,使每次只能选择一个,并且可以可选地要求组始终有选择。
self.group = [BEMCheckBoxGroup groupWithCheckBoxes:@[self.checkBox1, self.checkBox2, self.checkBox3]];
self.group.selectedCheckBox = self.checkBox2; // Optionally set which checkbox is pre-selected
self.group.mustHaveSelection = YES; // Define if the group must always have a selection
要查看哪个复选框在该组中被选中,只需请求它
BEMCheckBox *selection = self.group.selectedCheckBox;
要手动更新组的选中状态,只需设置它即可
self.group.selectedCheckBox = self.checkBox1;
BEMCheckBox 使用代理来接收复选框事件。协议对象必须遵守 BEMCheckBoxDelegate
协议,该协议由两个可选方法组成。
didTapCheckBox
在复选框的属性更新(on
)后、动画完成之前,将向代理发送。
animationDidStopForCheckBox
在复选框动画完成时,向代理发送。
BEMCheckBox 可以通过属性来独家自定义。
以下图表提供了良好的概述
lineWidth
- CGFloat
勾选标记和方框的线宽。默认为2.0。
hideBox
- BOOL
用于控制是否隐藏方框的BOOL值。将此属性设置为YES
将基本将复选框变为勾选标记。默认为NO
。
boxType
- BEMBoxType
要使用的方框类型。查看BEMBoxType
获取可能的值。默认为BEMBoxTypeCircle
。
tintColor
- UIColor
当复选框处于关闭状态时,方框的颜色。
onCheckColor
- UIColor
当勾选标记打开时,勾选标记的颜色。
onFillColor
- UIColor
当方框打开时,方框内部的颜色。
onTintColor
- UIColor
当方框打开时,围绕方框的线条颜色。
animationDuration
- CGFloat
动画的持续时间(以秒为单位)。默认为0.5
。
onAnimationType
- BEMAnimationType
当复选框被打勾时使用的动画类型。默认为BEMAnimationTypeStroke
。查看下面的BEMAnimationType
以获取可能的值。
offAnimationType
- BEMAnimationType
当复选框取消选中时使用的动画类型。默认为BEMAnimationTypeStroke
。查看下面的BEMAnimationType
以获取可能的值。
BEMAnimationType
onAnimationType
和offAnimationType
的可能值。