TNCheckBoxGroup-Addon 0.2

TNCheckBoxGroup-Addon 0.2

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布最新发布2015年1月

Martin Pham 维护。




使用附加功能为 Objective-C 定制的复选框

*** 附加功能

1) TNCheckBoxGroupView:用于 Interface Builder

  • 用户定义的键:single:BOOL - 单选(单选按钮组类型)或多项选择(复选框类型)项目:NSString - 项目列表,格式:@@|@@|...
  • 代理:TNCheckBoxGroupViewDelegate:- (void)TNCheckBoxGroupView:(id)view didChange:(NSArray*)selected;

2) 访问最后交互项:TNCheckBoxGroup.lastChangeItem

3) 从复选框数据访问复选框:TNCheckBoxData.checkbox

您可以使用 TNCheckBoxGroup 类来使用一些预置的复选框,或者很容易地扩展它以适应您的设计。每个复选框都有一个选中动画。当文本超过可用的空间时,它将自动在多行中换行。

当前版本支持 3 种不同的复选框

  1. 圆形复选框

  2. 方形复选框

  3. 自定义图表示例复选框

Screenshot

安装

手动

  • 只需将 src 文件夹中的文件拖到您的项目中。
  • 导入您想要使用的复选框类。

Cocoapods

  • pod 'TNCheckBoxGroup'添加到您的 Podfile。
  • 完成。

如何使用

导入TNCheckBoxGroup.h文件。

为复选框组中的每个选项创建数据对象。您可以使用以下数据对象:TNCircularCheckBoxDataTNRectangularCheckBoxDataTNImageCheckBoxData

每个数据对象都是TNCheckBoxData的子类,但具有您可以设置的特定属性。

您可以为每个数据对象设置以下属性

属性 功能
identifier 为复选框设置可读名称
labelText 设置标签文本
checked 设置选中状态
labelFont 设置标签字体
labelColor 设置标签颜色

不同的类有如下额外的属性

TNCircularCheckBoxData

参数 功能
borderColor 设置外部圆的外边框颜色
circleColor 设置内部圆的颜色
borderRadius 设置外部圆的半径
circleRadius 设置内部圆的颜色

示例

TNCircularCheckBoxData *bananaData = [[TNCircularCheckBoxData alloc] init];
bananaData.identifier = @"banana";
bananaData.labelText = @"Banana";
bananaData.checked = YES;
bananaData.borderColor = [UIColor blackColor];
bananaData.circleColor = [UIColor blackColor];
bananaData.borderRadius = 20;
bananaData.circleRadius = 15;

TNRectangularCheckBoxData

参数 功能
borderColor 设置外部矩形的边框颜色
rectangleColor 设置内部矩形的颜色
borderWidth 设置外部矩形的宽度
borderHeight 设置外部矩形的高度
rectangleWidth 设置内部矩形的宽度
rectangleHeight 设置内部矩形的高度

示例

TNRectangularCheckBoxData *tennisData = [[TNRectangularCheckBoxData alloc] init];
tennisData.identifier = @"tennis";
tennisData.labelText = @"Tennis";
tennisData.borderColor = [UIColor grayColor];
tennisData.rectangleColor = [UIColor grayColor];
tennisData.borderWidth = tennisData.borderHeight = 20;
tennisData.rectangleWidth = tennisData.rectangleHeight = 15;

TNImageCheckBoxData

参数 功能
selectedImage 设置选中状态下的图片
unselectedImage 设置未选中状态下的图片

示例

TNImageCheckBoxData *manData = [[TNImageCheckBoxData alloc] init];
manData.identifier = @"man";
manData.labelText = @"Man";
manData.checkedImage = [UIImage imageNamed:@"checked"];
manData.uncheckedImage = [UIImage imageNamed:@"unchecked"];

创建不同数据对象后,您可以创建 TNCheckBoxGroup 的实例,并将数据对象数组和布局传入。样式可以是水平或垂直。

您还可以通过 marginBetweenItems 属性设置每个项目之间的间隔。默认为15像素。

如果您愿意,还可以设置 identifier 属性,以便有一个可读的人名组。

调用 create 方法并设置 position 属性以将组放置在特定点。不用担心边框,这将被自动计算。并将对象添加到视图层次结构中。

self.myGroup = [[TNCheckBoxGroup alloc] initWithCheckBoxData:@[manData, womanData] style:TNCheckBoxLayoutVertical];
[self.myGroup create];
self.myGroup.position = CGPointMake(25, 25);

[self addSubview:self.myGroup];

完成!

获取变更通知

当复选框组的状态发生更改时,会广播一个 NSNotification

您可以通过监听 GROUP_CHANGED 消息来监听。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myGroupGotUpdated:) name:GROUP_CHANGED object:self.myGroup];

获取选中复选框的列表

每个 TNCheckBoxGroup 实例都有一个 checkedCheckBoxes 属性,这将返回一个包含所有选中复选框的数组。

获取未选中复选框的列表

每个 TNCheckBoxGroup 实例都有一个 uncheckedCheckBoxes 属性,这将返回一个包含所有未选中复选框的数组。

对复选框进行样式化

组级别

如果您想为特定组中的所有复选框提供相同的标签字体和颜色,可以设置 labelFontlabelColor 属性。

复选框级别

如果您想要为组中特定复选框提供不同的标签字体和/或颜色,可以在 TNCheckBox 子类上设置 labelFontlabelColor 属性。

创建自定义复选框

如果您愿意,添加自定义复选框确实非常简单。

  1. 创建一个数据模型类,在其中存储您的复选框的特定数据。此类需要扩展 TNCheckBoxData

  2. 创建一个扩展 TNCheckBox 的复选框类。

  3. 重写 setup 方法(不要忘记在最后调用 super 方法)。

  4. 重写 createCheckbox 方法,在这里您可以绘制自定义复选框。

  5. 重写 checkWithAnimation: 方法以在复选框状态更改时提供自己的动画。

  6. 没有第六步。

演示

此存储库中已添加一个演示项目,因此您可以看到它是如何工作的。

许可协议

TNCheckBoxGroup 在 MIT 许可协议下发布

版权所有 (C) 2014, Frederik Jacques

在此,任何人免费获得本软件及其相关文档(以下简称“软件”)的副本,被许可在这些软件上无限制地操作,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,以及许可提供软件的人员这样做,受以下条件约束:

上述版权声明和本许可声明应包含在软件的所有副本或主要部分的副本中。

软件按“现状”提供,不提供任何形式的质量保证,包括但不限于适销性、特定用途适用性和非侵权保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他原因,因为这些索赔、损害或其他责任由软件、使用或以其他方式涉及软件引起,无论是否合理。