BPForms 2.1.1

BPForms 2.1.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布时间最后发布2015年10月

Bogdan Poplauschi维护。



BPForms 2.1.1

  • Bogdan Poplauschi

适用于iPhone/iPad的动态表单 - iOS 6, 7及更高版本(受BZGFormViewController启发)。

现在与知名库JVFloatLabeledTextField集成。

表单设计

  • 查看一篇有关表单设计的好文章

如何开始

要求

  • Xcode4及以上
  • iOS 6.0及以上

架构

表单

  • BPFormViewController

单元格

  • BPFormCell实现了BPFormCellProtocol
    • BPFormInputCell - "抽象类"和所有输入单元格的基类
      • BPFormInputTextFieldCell使用BPFormTextField
        • BPFormFloatInputTextFieldCell使用BPFormFloatLabelTextField
      • BPFormInputTextViewCell使用BPFormTextView
        • BPFormFloatInputTextViewCell使用BPFormFloatLabelTextView
    • BPFormButtonCell
  • BPFormInfoCell实现了BPFormCellProtocol

外观

  • BPAppearance

类图

请查看详细的类图

依赖项

演示

转到/Example,运行pod install,然后在BPFormsExample.xcworkspace中运行目标

用法

对于您创建的任何表单,您应该子类化BPFormViewController或者实例化它。

创建一个输入单元格

您可以创建简单的输入单元格(BPFormInputTextFieldCell)或带有标签浮在文本值上方(如截图所示的BPFormFloatInputTextFieldCell)的输入单元格。

只需设置所需的属性并确保设置BPFormViewController实例为textField的代理。shouldChangeBlock用于验证输入的数据,请添加验证代码(请参阅示例)。

BPFormFloatInputTextFieldCell *emailCell = [[BPFormFloatInputTextFieldCell alloc] init];
emailCell.textField.placeholder = @"Email";
emailCell.textField.delegate = self;
emailCell.customCellHeight = 50.0f;
emailCell.mandatory = YES;
emailCell.shouldChangeTextBlock =
        BPValidateBlockWithPatternAndMessage(
            @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}",
            @"The email should look like [email protected]");

创建一个按钮单元格

BPFormButtonCell *signUpCell = [[BPFormButtonCell alloc] init];
signUpCell.button.backgroundColor = [UIColor blueColor];
[signUpCell.button setTitle:@"Sign Up" forState:UIControlStateNormal];
signUpCell.button.layer.cornerRadius = 4.0;
signUpCell.button.layer.masksToBounds = YES;
signUpCell.buttonActionBlock = ^(void){
    NSLog(@"Button pressed");
};

将所有单元格添加到表单控制器

  • 请记住 formCells 包含一个区域数组,每个区域包含其单元格
self.formCells = @[@[emailCell, passwordCell, password2Cell, nameCell, phoneCell], @[signUpCell]];

添加区域标题或页脚

[self setHeaderTitle:@"Please enter your credentials" forSection:0];
[self setFooterTitle:@"When you're done, press <<Sign Up>>" forSection:0];

调整外观

  • 使用 BPAppearance 类来自定义表单的外观
// fonts
[BPAppearance sharedInstance].infoCellLabelFont = [UIFont systemFontOfSize:12];

// colors
[BPAppearance sharedInstance].headerFooterLabelTextColor = [UIColor lightGray];

// sizes
[BPAppearance sharedInstance].infoCellHeight = 25;

作者

许可证