iCheckbox 2.0.0

iCheckbox 2.0.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最新发布2016 年 10 月
SPM支持 SPM

Stefan Godoroja 维护。



iCheckbox 2.0.0

iCheckbox

一个用于 iOS 应用的自定义复选框组件,用 Swift 3.0 编写。复选框可以按一列或两列排列,可以有实边框和/或圆角,单选或多选等。iCheckbox 适用于 iOS 8 及更高版本,也可在 Objective-C 项目中使用。

查看几个示例

单选,两列,带有标题的实边框和圆角

ve49bsufoe

单选,两列,带有标题的实边框

hpqth224qj

单选,两列,无边框

plnuwbl9nf

多选,单列,无边框

multiple

库提供复选框/复选框池的自定义选项

  • 复选框

    • 正常状态标题颜色
    • 选中状态标题颜色
    • 正常状态图像
    • 选中状态图像
    • 大小

  • 复选框池

    • 画布上的位置
    • 选择类型
    • 池样式
    • 边框类型
    • 边框宽度
    • 边框颜色
    • 边框圆角半径
    • 标题标题颜色

手动安装

  1. iCheckbox.xcodeproj 拖动到您的项目中。转到应用程序目标的设置,在 嵌入式二进制文件 部分下方按“+”,然后选择 iCheckbox.framework
  2. 在您的类中添加 @import iCheckbox
  3. 以上。

入门

使用 iCheckbox 很简单。使用 iCheckboxBuilderConfig 创建一个用于 iCheckboxBuilder 的配置实例,该实例将渲染复选框。 iCheckboxBuilderConfig 包含设置复选框标题颜色、复选框状态图像、复选框池边框等值。除了 iCheckboxBuilderConfig 以外,iCheckboxBuilder 接收一系列 iCheckboxState,每个 iCheckboxState 描述一个复选框,其标题和选中状态。为了在复选框被点击时接收通知,感兴趣类必须实现 iCheckboxDelegatedidSelectCheckbox() 方法。

完整示例

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

待办事项

  • 添加对 MacOS、tvOS 和 watchOS 的支持。
  • 更多的自定义选项。
  • 添加单元测试。
  • 添加 Carthage 支持。

联系

如果您发现任何问题或想要添加功能,请创建 一个问题 或生成一个拉取请求。或者您可以通过 twitter 联系我。

授权协议

MIT 协议

版权所有 © 2016 Stefan Godoroja

在此特此免费授予任何人获得此软件及其相关文档副本(以下简称“软件”),在不受限制的情况下处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本,并允许接受软件的人这样做,前提是遵守以下条件

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

软件按“原样”提供,不提供任何形式的保证,无论是明确的还是暗示的,包括但不限于适销性、适用于特定目的和非侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论基于合同、侵权或其他原因,无论是否因软件、软件的使用或以任何方式与此软件或对软件的使用相关而引起。