BEMCheckBox 1.4.1

BEMCheckBox 1.4.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布日期最新发布2017 年 5 月

Boris 维护。




  • 作者
  • Boris Emorine

BEMCheckBox 是一个开源库,用于创建美观的、高度可定制的、动画化的复选框,适用于 iOS。

目录

项目详情

了解更多关于 BEMCheckBox 项目、许可、支持等方面的信息。

要求

  • 需要 iOS 7 或更高版本。该示例项目针对 iOS 9 进行优化。
  • 需要自动引用计数 (ARC)。
  • 针对 ARM64 架构优化。

许可证

查看 许可证。您可以在个人或商业项目中自由更改和使用此库。不需要归功,但我们会非常感激。一点“谢谢!”(或类似的留言)总是受欢迎的。如果您在您的应用中使用了 BEMCheckBox,请让我们知道!

支持


如果您需要任何帮助或想要讨论该项目,请加入我们的 Gitter Gitter

示例应用

该项目包含的 iOS 示例应用演示了一种正确设置和使用 BEMCheckBox 的方法。它还提供了在应用内自定义复选框的可能性。

React Native

BEMCheckBox 现在可以与 React Native 一起使用:[React-Native-BEMCheckBox](https://github.com/torifat/react-native-bem-check-box)

入门

只需几个简单的步骤即可将 BEMCheckBox 安装并设置到您的项目中。

安装

手动

最后,您可以手动安装 BEMCheckBox。只需将 Classes 文件夹拖放到您的 Xcode 项目中。这样做时,请确保勾选 "将项目复制到目标组的文件夹中" 复选框。

设置

BEMCheckBox 设置到项目中非常简单。它是根据 UISwitch 来设计的。事实上,您只需在项目中用 BEMCheckBox 替换 UISwitch 的实例即可!
以下是可以运行的步骤:

  1. "BEMCheckBox.h" 导入您的视控制器头文件

    #import "BEMCheckBox.h"
  2. 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
onAnimationTypeoffAnimationType的可能值。

  • BEMAnimationTypeStroke

  • BEMAnimationTypeFill

  • BEMAnimationTypeBounce

  • BEMAnimationTypeFlat

  • BEMAnimationTypeOneStroke

  • BEMAnimationTypeFade