一个用于 iOS 应用的自定义复选框组件,用 Swift 3.0 编写。复选框可以按一列或两列排列,可以有实边框和/或圆角,单选或多选等。iCheckbox 适用于 iOS 8 及更高版本,也可在 Objective-C 项目中使用。
查看几个示例
单选,两列,带有标题的实边框和圆角
单选,两列,带有标题的实边框
单选,两列,无边框
多选,单列,无边框
库提供复选框/复选框池的自定义选项
复选框
复选框池
iCheckbox.xcodeproj
拖动到您的项目中。转到应用程序目标的设置,在 嵌入式二进制文件
部分下方按“+”,然后选择 iCheckbox.framework
@import iCheckbox
。使用 iCheckbox 很简单。使用 iCheckboxBuilderConfig
创建一个用于 iCheckboxBuilder
的配置实例,该实例将渲染复选框。 iCheckboxBuilderConfig
包含设置复选框标题颜色、复选框状态图像、复选框池边框等值。除了 iCheckboxBuilderConfig
以外,iCheckboxBuilder
接收一系列 iCheckboxState
,每个 iCheckboxState
描述一个复选框,其标题和选中状态。为了在复选框被点击时接收通知,感兴趣类必须实现 iCheckboxDelegate
的 didSelectCheckbox
() 方法。
完整示例
Swift
class ViewController: UIViewController, iCheckboxDelegate {
override func viewDidLoad() {
super.viewDidLoad()
addCheckboxes()
}
func addCheckboxes() {
var checkboxBuilderConfig = iCheckboxBuilderConfig()
checkboxBuilderConfig.headerTitle = "Some title"
let checkboxBuilder = iCheckboxBuilder(withCanvas: self.view, andConfig: checkboxBuilderConfig)
checkboxBuilder.delegate = self
var firstCheckboxState = iCheckboxState()
firstCheckboxState.title = "One"
var secondCheckboxState = iCheckboxState()
secondCheckboxState.title = "Two"
var thirdCheckboxState = iCheckboxState()
thirdCheckboxState.title = "Three"
var fourthCheckboxState = iCheckboxState()
fourthCheckboxState.title = "Four"
var fifthCheckboxState = iCheckboxState()
fifthCheckboxState.title = "Five"
var sixthCheckboxState = iCheckboxState()
sixthCheckboxState.title = "Six"
var seventhCheckboxState = iCheckboxState()
seventhCheckboxState.title = "Seven"
checkboxBuilder.addCheckboxes(withStates: [firstCheckboxState,
secondCheckboxState,
thirdCheckboxState,
fourthCheckboxState,
fifthCheckboxState,
sixthCheckboxState,
seventhCheckboxState])
}
func didSelectCheckbox(withState state: Bool, identifier: Int, andTitle title: String) {
print("Checkbox '\(title)', has selected state: \(state)")
}
}
Objective-C
#import "ViewController.h"
@import iCheckbox;
@interface ViewController () <iCheckboxDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
iCheckboxBuilderConfig *buiderConfig = [[iCheckboxBuilderConfig alloc] init];
buiderConfig.headerTitle = @"Some Title";
iCheckboxBuilder *builder = [[iCheckboxBuilder alloc] initWithCanvas:self.view
andConfig:buiderConfig];
builder.delegate = self;
iCheckboxState *firstCheckbox = [[iCheckboxState alloc] initWithTitle:@"First"
selected:NO];
iCheckboxState *secondCheckbox = [[iCheckboxState alloc] initWithTitle:@"Second"
selected:NO];
iCheckboxState *thirdCheckbox = [[iCheckboxState alloc] initWithTitle:@"Third"
selected:NO];
iCheckboxState *fourthCheckbox = [[iCheckboxState alloc] initWithTitle:@"Four"
selected:NO];
iCheckboxState *fifthCheckbox = [[iCheckboxState alloc] initWithTitle:@"Five"
selected:NO];
iCheckboxState *sixthCheckbox = [[iCheckboxState alloc] initWithTitle:@"Six"
selected:NO];
iCheckboxState *seventhCheckbox = [[iCheckboxState alloc] initWithTitle:@"Seven"
selected:NO];
[builder addCheckboxesWithStates:@[firstCheckbox,
secondCheckbox,
thirdCheckbox,
fourthCheckbox,
fifthCheckbox,
sixthCheckbox,
seventhCheckbox]];
}
- (void)didSelectCheckboxWithState:(BOOL)state identifier:(NSInteger)identifier andTitle:(NSString *)title
{
NSLog(@"Checkbox %@, has selected state: %d", title, state);
}
@end
如果您发现任何问题或想要添加功能,请创建 一个问题 或生成一个拉取请求。或者您可以通过 twitter 联系我。
MIT 协议
版权所有 © 2016 Stefan Godoroja
在此特此免费授予任何人获得此软件及其相关文档副本(以下简称“软件”),在不受限制的情况下处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本,并允许接受软件的人这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。
软件按“原样”提供,不提供任何形式的保证,无论是明确的还是暗示的,包括但不限于适销性、适用于特定目的和非侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论基于合同、侵权或其他原因,无论是否因软件、软件的使用或以任何方式与此软件或对软件的使用相关而引起。