TNCheckBoxGroup 0.1

TNCheckBoxGroup 0.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2014年12月

Frederik Jacques 维护。




Objective-C 的自定义复选框

您可以使用 TNCheckBoxGroup 类使用一些预建复选框,或者可以轻松扩展以适应您自己的设计。每个复选框都有一个选中动画。当文字长度超过可用空间时,它将自动换行到多行。

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

  1. 圆形复选框

  2. 方形复选框

  3. 自定义图片复选框

Screenshot

安装

手动

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

如何使用

导入 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

参数 它做什么
已选图片 设置选中状态下的图片
未选中图片 设置未选中状态下的图片

示例

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方法(不要忘记在最后调用超类方法)。

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

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

  6. 没有第六步。

演示

此存储库已添加了一个演示项目,因此您可以看到它的工作原理。

许可

TNCheckBoxGroup在MIT许可下发布

版权(C)2014,Frederik Jacques

特此授予任何人未经限制使用、复制、修改、合并、发布、分发、再许可和/或销售软件及其相关文档副本(“软件”),并允许将软件提供给他人使用,前提是遵守以下条件

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

软件按照“现状”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、适用于特定目的和不侵权保证。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论是基于合同行为、侵权或其他原因,这些索赔、损害或其他责任源于、产生于或与软件或其使用或在任何其他方式中软件相关。