TNRadioButtonGroup 0.4

TNRadioButtonGroup 0.4

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

Frederik Jacques 维护。




Objective-C 的单选按钮

您可以使用 TNRadioButtonGroup 类来使用一些预构建的单选按钮,或者您也可以非常容易地扩展它以适应您的设计。每个单选按钮都有一个选中动画。当文本长度超过可用空间时,它将自动将文本换行到多行。

当前版本支持 3 种不同的单选按钮

  1. 圆形单选按钮

  2. 方形单选按钮

  3. 自定义图片单选按钮

Screenshot

安装

手动安装

  • 只需将 src 文件夹中的文件拖到您的项目中即可。
  • 导入您想要使用的单选按钮类

如何使用

导入 TNRadioButtonGroup.h 文件。

为您的单选按钮组中的每个选项创建数据对象。您可以使用以下数据对象:TNCircularRadioButtonDataTNRectangularRadioButtonDataTNImageRadioButtonData

每个数据对象都扩展了 TNRadioButtonData,但具有您可以设置的特定属性。

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

属性 做什么
identifier 为单选按钮设置一个供人类阅读的名称
labelText 设置标签文本
selected 设置选中状态
labelFont 设置标签的字体
labelColor 设置标签的颜色

不同类具有以下额外的属性

TNCircularRadioButtonData

参数 做什么
borderColor 设置外圆的边框颜色
circleColor 设置内圆的颜色
borderRadius 设置外圆的半径
circleRadius 设置内圆的颜色

示例

TNCircularRadioButtonData *maleData = [TNCircularRadioButtonData new];
maleData.labelText = @"Male";
maleData.identifier = @"male";
maleData.selected = YES;
maleData.borderColor = [UIColor blackColor];
maleData.circleColor = [UIColor blackColor];
maleData.borderRadius = 12;
maleData.circleRadius = 5;

TNRectangularRadioButtonData

参数 做什么
borderColor 设置外矩形的边框颜色
rectangleColor 设置内矩形的颜色
borderWidth 设置外矩形的宽度
borderHeight 设置外矩形的高度
rectangleWidth 设置内矩形的宽度
rectangleHeight 设置内矩形的高度

示例

TNRectangularRadioButtonData *snowboardData = [TNRectangularRadioButtonData new];
snowboardData.labelText = @"Snowboarding";
snowboardData.identifier = @"snowboarding";
snowboardData.selected = NO;
snowboardData.borderColor = [UIColor blackColor];
snowboardData.rectangleColor = [UIColor blackColor];
snowboardData.borderWidth = snowboardData.borderHeight = 12;
snowboardData.rectangleWidth = snowboardData.rectangleHeight = 5;

TNImageRadioButtonData

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

示例

TNImageRadioButtonData *coldData = [TNImageRadioButtonData new];
coldData.labelText = @"Hot";
coldData.identifier = @"hot";
coldData.selected = YES;
coldData.unselectedImage = [UIImage imageNamed:@"unchecked"];
coldData.selectedImage = [UIImage imageNamed:@"checked"];

创建了不同的数据对象后,可以创建一个 TNRadioButtonGroup 实例,并将包含这些数据对象的数组传递给它,设置布局。布局可以是水平或垂直。

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

如果您愿意,还可以设置 identifier 属性,为该组提供一个可读的名称。

调用 create 方法,并将 position 属性设置为将组放置在特定位置。不用担心框架,这将自动计算。然后将对象添加到视图层次结构。

self.myGroup = [[TNRadioButtonGroup alloc] initWithRadioButtonData:@[data1, data2, data3] style:TNRadioButtonGroupStyleHorizontal];
self.myGroup.identifier = @"My group";
[self.myGroup create];
self.myGroup.position = CGPointMake(15, 50);
[self addSubview:self.myGroup];

完成!

获取更改通知

当单选按钮组的状态改变时,会发出一个 NSNotification

您可以监听 SELECTED_RADIO_BUTTON_CHANGED 消息。

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

设计复选框

组级别

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

复选框级别

如果您想为组中某些特定的单选按钮提供不同的标签字体和/或颜色,可以在 TNRadioButton 子类上设置 labelFontlabelColor 属性。

创建自定义单选按钮

如果您想添加自定义单选按钮,这非常简单。

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

  2. 创建一个扩展 TNRadioButton 的单选按钮类。

  3. 重写 setup 方法(别忘了调用 super 方法)。

  4. 重写 createRadioButton 方法,在这里您可以绘制自定义单选按钮。

  5. 重写 checkWithAnimation: 方法,在单选按钮状态改变时提供您自己的动画。

  6. 第 6 步不存在。

演示

此仓库已添加演示项目,您可以看到它是如何工作的。

许可协议

TNRadioButtonGroup 在 MIT 许可下发布

版权(C)2014,Frederik Jacques

以下是在以下条件下,免费地向任何获得本软件及其相关文档文件(以下简称“软件”)的副本的人授权的:

软件授予的使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件供应方获得该软件的人进行上述操作:

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于对适销性、适用于特定目的和非侵权的保证。在任何情况下,作者或版权所有者都不应对任何索赔、损害或其他责任(无论是否由于合同、侵权或其他行为而产生),对软件或其使用或其他交易产生或与之相关的任何索赔、损害或责任。