UFKit

by czl620

czl620 / UFKit

快速集成表单

239 Stars 41 Forks Last release: Not found 115 Commits 41 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

          _ _     _ _   _ _ _ _ _   _ _     _ _    _ _   _ _ _ _ _ _ __
         /  /    /  /  /  _ _ _ /  /  /   ╱  ╱    /__/  /_ _ _   _ _ _/
        /  /    /  /  /  /        /  /  ╱  ╱     _ _         /  /
       /  /    /  /  /  /_ _ _   /  / ╱  ╱      /  /        /  /
      /  /    /  /  /  _ _ _ /  /  / \  \      /  /        /  /
     /  /_ __/  /  /  /        /  /   \  \    /  /        /  /
     \ _ _ _ _ /  /__/        /__/     \__\  /__/        /__/

效果

在这里插入图片描述

要求

  • iOS 8.0 or later

  • Xcode 11.0 or later

1、表单UFFormView

UFFormView *formView = [UFFormView makeFormView:^(UFFormViewMaker * _Nonnull make) {
        // TODO:设置表单样式
    }];

UFFormView *formView = [[UFFormView alloc] init];
// TODO:设置表单样式

2、表单样式

1、什么是样式?

样式就是设置UI控件的字体、颜色、对齐方式等一列属性。包括:文本样式UFTextStyle、标题样式UFRowTitleStyle、手机验证码按钮样式UFMobileCodeStyle、单选按钮样式UFRadioGroupStyle、表单组样式UFSectionStyle等。

2、如何创建表单样式?

​ 1、文本样式

UFTextStyle *textStyle = [UFTextStyle makeTextStyle:^(UFRowTextStyleMaker * _Nonnull make) {
        make
        .color([UIColor redColor])            // 设置文本颜色
        .font([UIFont systemFontOfSize:14])   // 设置文本字体
        .textAlignment(NSTextAlignmentLeft);  // 设置文本对齐方式
    }];     

UFTextStyle *textStyle = [[UFTextStyle alloc] init];
textStyle.color = [UIColor redColor];           // 设置文本颜色
textStyle.font = [UIFont systemFontOfSize:14];  // 设置文本字体
textStyle.textAlignment = NSTextAlignmentLeft;  // 设置文本对齐方式

​ 2、标题样式

UFRowTitleStyle *titleStyle = [UFRowTitleStyle makeTitleStyle:^(UFRowTitleStyleMaker * _Nonnull make) {
        make
        .width(90)                           // 设置标题宽度
        .color([UIColor redColor])           // 设置标题颜色
        .font([UIFont systemFontOfSize:14])  // 设置标题字体
        .textAlignment(NSTextAlignmentLeft); // 设置标题对齐方式
    }];     

UFRowTitleStyle *titleStyle = [[UFTextStyle alloc] init];
titleStyle.width = 90;                           // 设置标题宽度
titleStyle.color = [UIColor redColor];           // 设置标题颜色
titleStyle.font = [UIFont systemFontOfSize:14];  // 设置标题字体
titleStyle.textAlignment = NSTextAlignmentLeft;  // 设置标题对齐方式

​ 3、手机验证码样式

UFMobileCodeStyle *codeStyle = [UFMobileCodeStyle makeMobileCodeStyle:^(UFMobileCodeStyleMaker * _Nonnull make) {
        make
        .cornerRadius(10)                           // 设置按钮圆角
        .backgroundColor([UIColor redColor])        // 设置按钮背景色
        .separatorColor([UIColor lightGrayColor])   // 设置输入框与按钮之间分割线的颜色
        .color([UIColor whiteColor])                // 设置按钮标题颜色
        .font([UIFont systemFontOfSize:14])         // 设置按钮标题字体
        .textAlignment(NSTextAlignmentLeft);        // 设置按钮标题对齐方式
    }];

UFMobileCodeStyle *codeStyle = [[UFMobileCodeStyle alloc] init];
codeStyle.cornerRadius = 10;                         // 设置按钮圆角     
codeStyle.backgroundColor = [UIColor redColor];      // 设置按钮背景色
codeStyle.separatorColor = [UIColor lightGrayColor]  // 设置输入框与按钮之间分割线的颜色
codeStyle.color = [UIColor whiteColor];              // 设置按钮标题颜色
codeStyle.font = [UIFont systemFontOfSize:14];       // 设置按钮标题字体
codeStyle.textAlignment = NSTextAlignmentLeft;       // 设置按钮标题对齐方式

​ 4、单选按钮样式

UFRadioGroupStyle *radioGroupStyle = [UFRadioGroupStyle makeRadioGroupStyle:^(UFRowRadioGroupStyleMaker * _Nonnull make) {
        make
        .image([UIImage imageNamed:@"radio_checked"])              // 未选中图片
        .selectedImage([UIImage imageNamed:@"radio_unchecked"]);   // 选中图片
    }];

UFRadioGroupStyle *radioGroupStyle = [[UFRadioGroupStyle alloc] init];
radioGroupStyle.image = [UIImage imageNamed:@"radio_checked"];             // 未选中图片
radioGroupStyle.selectedImage = [UIImage imageNamed:@"radio_unchecked"];   // 选中图片
3、统一添加表单样式

1、添加左侧标题样式

[UFFormView makeFormView:^(UFFormViewMaker * _Nonnull make) {
        make
        .titleStyle([UFRowTitleStyle makeTitleStyle:^(UFRowTitleStyleMaker * _Nonnull make) {                                
    // TODO:设置标题样式(参考如何创建标题样式)
        }]);
    }];    

UFRowTitleStyle *titleStyle = [[UFRowTitleStyle alloc] init];
// TODO:设置标题样式(参考如何创建标题样式)
formView.titleStyle = titleStyle;    

2、设置右侧值样式

UFFormView *formView = [UFFormView makeFormView:^(UFFormViewMaker * _Nonnull make) {
            make
            .valueStyle([UFTextStyle makeTextStyle:^(UFRowTextStyleMaker * _Nonnull make) {
                // TODO:设置值样式(参考如何创建文本样式)
            }]);
     }];    

UFTextStyle *valueStyle = [[UFTextStyle alloc] init];
// TODO:设置值样式(参考如何创建文本样式)
formView.valueStyle = valueStyle;   
4、统一设置行高
UFFormView *formView = [UFFormView makeFormView:^(UFFormViewMaker * _Nonnull make) {
       make
       .rowHeight(50);
   }];

formView.rowHeight = 50;

3、分组UFSection

1、创建分组
UFSection *section = [UFSection makeSection:^(UFSectionMaker * _Nonnull make) {

}];

  UFSection *section = [[UFSection alloc] init];
2、设置分组样式

​ 1、统一设置组内的表单样式

UFSection *section = [UFSection makeSection:^(UFSectionMaker * _Nonnull make) {
      make
       // 设置标题样式
      .titleStyle([UFRowTitleStyle makeTitleStyle:^(UFRowTitleStyleMaker * _Nonnull make) {                                     // TODO:设置标题样式(参考如何创建标题样式)  
         }])
       // 设置值样式
       .valueStyle([UFTextStyle makeTextStyle:^(UFRowTextStyleMaker * _Nonnull make) {
          // TODO:设置值样式(参考如何创建文本样式)    
       }]);
    }];    

UFSection *section = [[UFSection alloc] init];

// 设置标题样式 UFRowTitleStyle *titleStyle = [[UFRowTitleStyle alloc] init]; // TODO:设置标题样式(参考如何创建标题样式) section.titleStyle = titleStyle;

// 设置值样式 UFTextStyle *valueStyle = [[UFTextStyle alloc] init]; // TODO:设置值样式(参考如何创建文本样式)
section.valueStyle = valueStyle;

​ 2、设置组头、脚样式

[UFSection makeSection:^(UFSectionMaker * _Nonnull make) {
      make
        // 设置头样式
      .headerStyle([UFSectionStyle makeSectionStyle:^(UFSectionStyleMaker * _Nonnull make) {
       make
       .height(30)                         // 设置头高度
       .text(@"页眉")                      // 设置头描述信息
       .color([UIColor lightGrayColor])    // 设置头描述信息颜色
       .font([UIFont systemFontOfSize:12]) // 设置头描述信息字体
       .numberOfLines(0);                  // 设置头描述信息多行
        }])

    // 设置脚样式
  .footerStyle([UFSectionStyle makeSectionStyle:^(UFSectionStyleMaker * _Nonnull make) {
    make
   .height(30)                         // 设置脚高度
   .text(@"页脚")                      // 设置脚描述信息
   .color([UIColor lightGrayColor])    // 设置脚描述信息颜色
   .font([UIFont systemFontOfSize:12]) // 设置脚描述信息字体
   .numberOfLines(0);                  // 设置脚描述信息多行
  }]);            
 }]; 

UFSection *section = [[UFSection alloc] init];

// 设置头样式 UFSectionStyle *headerStyle = [[UFSectionStyle alloc] init]; headerStyle.height = 30; // 设置头高度 headerStyle.text = @"页眉"; // 设置头描述信息 headerStyle.color = [UIColor lightGrayColor]; // 设置头描述信息颜色 headerStyle.font = [UIFont systemFontOfSize:12]; // 设置头描述信息字体 headerStyle.numberOfLines = 0; // 设置头描述信息多行 section.headerStyle = headerStyle;

// 设置脚样式 UFSectionStyle *footerStyle = [[UFSectionStyle alloc] init]; footerStyle.height = 30; // 设置脚高度 footerStyle.text = @"页脚"; // 设置脚描述信息 footerStyle.color = [UIColor lightGrayColor]; // 设置脚描述信息颜色 footerStyle.font = [UIFont systemFontOfSize:12]; // 设置脚描述信息字体 footerStyle.numberOfLines = 0; // 设置脚描述信息多行 section.footerStyle = footerStyle;

3、添加组到表单
UFFormView *formView = [UFFormView makeFormView:^(UFFormViewMaker * _Nonnull make) {
         make
        .addSection([UFSection makeSection:^(UFSectionMaker * _Nonnull make) {
            // TODO:设置组样式
        };
    }];

[formView addSection:section];  

4、行UFRow

1、子类
UFRow                                // 文本
UFSubtitleRow                        // 子标题
UFTextFieldRow                       // 单行输入
UFDatePickerRow                      // 日期选择器
UFPickerViewRow                      // 单项选择器
UFMultiplePickerViewRow              // 多项选择器
UFAreaPickerRow                      // 三级地址选择器
UFCustomPickerViewRow                // 自定义选择器
UFTextViewRow                        // 多行输入
UFMobileCodeRow                      // 手机验证码
UFAvatarRow                          // 头像
UFRadioGroupRow                      // 单选
UFSwitchRow                          // 开关
UFPlateNumberRow                     // 车牌号码    
2、如何创建行?(常规写法不再赘述)

(1)UFRow

在这里插入图片描述

UFRow *row = [UFRow makeRow:^(UFRowMaker * _Nonnull make) {
        make
        .height(50)                                  // 设置行高
        .image([UIImage imageNamed:@"icon"])         // 设置图标
        .title(@"姓名")                               // 设置标题
        .titleStyle([UFRowTitleStyle makeTitleStyle:^(UFRowTitleStyleMaker * _Nonnull make) {
            make
            .width(100)                              // 设置标题宽度,为了对齐表单
            .color([UIColor blackColor])             // 设置标题颜色
            .font([UIFont systemFontOfSize:15])      // 设置标题字体
            .textAlignment(NSTextAlignmentLeft);     // 设置标题对齐方式
        }])                                          // 设置标题样式
        .value(@"陈张利")                             // 设置默认值
        .valueStyle([UFTextStyle makeTextStyle:^(UFRowTextStyleMaker * _Nonnull make) {
            make
            .color([UIColor blackColor])             // 设置值颜色
            .font([UIFont systemFontOfSize:15])      // 设置值字体
            .textAlignment(NSTextAlignmentRight);    // 设置值对齐方式
        }])                                          // 设置值样式
        .valueDidChanged(^(__kindof UFRow * _Nonnull row, NSString * _Nonnull value) {
            // 监听值得变化
        })
        .accessoryType(UFRowAccessoryDisclosureIndicator) // 设置行后的附件样式,如箭头、对号
        .accessoryImage([UIImage imageNamed:@"arrow"])    // 自定义行后的附件图片,如箭头、对号
        .rowDidSelected(^(__kindof UFRow * _Nonnull row) {
            // 点击行事件
        })
        .name(@"name");                                   // 行的名称,可看做时字段的key,唯一值
    }];

:为使行的右端对齐,你可使用UFRowAccessorySpace进行占位。

(2)UFSubtitleRow

在这里插入图片描述

UFSubtitleRow *subtitleRow = [UFSubtitleRow makeSubtitleRow:^(UFSubtitleRowMaker * _Nonnull make) {
       make
       .subtitle(@"推荐支付宝用户使用")                      // 设置子标题
       .subtitleStyle([UFRowTitleStyle makeTitleStyle:^(UFRowTitleStyleMaker * _Nonnull make) {
           make
           .width(140)                                    // 设置子标题宽度
           .font([UIFont systemFontOfSize:12])            // 设置子标题字体
           .color([UIColor lightGrayColor]);              // 设置子标题颜色
       }])                                                // 设置子标题样式
       .accessoryImage([UIImage imageNamed:@"checked"])   // 自定义行后的附件图片
       .height(80)                                        // 设置行高
       .image([UIImage imageNamed:@"alipay"])             // 设置图标
       .title(@"支付宝")                                  // 设置标题
       .name(@"pay");                                 

   // 其他属性不再赘述,参考UFRow设置

}];

(3)UFAvatarRow

在这里插入图片描述

UFAvatarRow *avatarRow = [UFAvatarRow makeAvatarRow:^(UFAvatarRowMaker * _Nonnull make) {
        make
        .cornerRadius(30)                                   // 设置头像圆角,圆角大小决定行高
        .avatarImage([UIImage imageNamed:@"touxiang"])      // 设置默认头像,网络图像不设置或加载失败时,可作为占位头像
        .avatarDidSelected(^(__kindof UFAvatarRow * _Nonnull row, UIImageView * _Nonnull avatarView) {
            // 点击头像事件
        })
        .title(@"头像")
        .value(@"http://img0.imgtn.bdimg.com/it/u=2572957358,1108684168&fm=26&gp=0.jpg") // 设置网络图片
        .accessoryType(UFRowAccessorySpace)
        .name(@"avatar");

    // 其他属性不再赘述,参考UFRow设置
}];

UFKit提供了UIViewControlle的选择图片的方法

[self ufk_pickerImageForResult:^(UIImage * _Nonnull image) {

}];

(4)UFRadioGroupRow

在这里插入图片描述

 UFRadioGroupRow *radioGroupRow  = [UFRadioGroupRow makeRadioGroupRow:^(UFRadioGroupRowMaker * _Nonnull make) {
        make
        .itemArray(@[@"男",@"女"])      // 设置选项
        .editable(YES)                 // 是否允许编辑
        .radioGroupStyle([UFRadioGroupStyle makeRadioGroupStyle:^(UFRowRadioGroupStyleMaker * _Nonnull make) {
            make
            .image([UIImage imageNamed:@"rg_unchecked"])          // 设置默认未选中图片
            .selectedImage([UIImage imageNamed:@"rg_checked"]);   // 设置选中图片
        }])
        .title(@"性别")
        .value(@"男")
        .accessoryType(UFRowAccessorySpace)
        .name(@"gender");

// 其他属性不再赘述,参考UFRow设置
}];

(5)UFTextFieldRow

在这里插入图片描述

UFTextFieldRow *textFieldRow = [UFTextFieldRow makeTextFieldRow:^(UFTextFieldRowMaker * _Nonnull make) {
        make
        .limitType(UFInputLimitTypeMobile)    // 设置输入限制
        .editable(YES)                        // 是否允许编辑
        .maxLength(11)                        // 设置最大输入长度,设置limitType后该属性可能会不起作用
        .keyboardType(UIKeyboardTypeDefault)  // 设置键盘样式,设置limitType后该属性可能会不起作用
        .secureTextEntry(NO)                  // 是否安全输入
        .canPerformAction(YES)                // 是否允许粘贴复制
        .placeholder(@"请输入")                // 占位字符,不设置时自动会添加请输入title
        .barTintColor([UIColor blackColor])   // 键盘上方取消/确定的颜色
        .title(@"联系方式")
        .accessoryType(UFRowAccessorySpace)
        .name(@"mobile");

// 其他属性不再赘述,参考UFRow设置
}];

注: UFKit提供了以下输入限制样式,以便限制输入框内输入的内容。

typedef NS_ENUM(NSUInteger, UFInputLimitType) {
    UFInputLimitTypeNone = 0,        // 无限制
    UFInputLimitTypeMobile,          // 手机号码
    UFInputLimitTypeEmail,           // 邮箱
    UFInputLimitTypeIdCard,          // 身份证号
    UFInputLimitTypeNumbers,         // 数字
    UFInputLimitTypeLetters,         // 字母
    UFInputLimitTypeCapitalLetters,  // 大写字母
    UFInputLimitTypeAlphanumeric,    // 字母和数字
    UFInputLimitTypeFloat,           // 浮点数
    UFInputLimitTypeMoney,           // 金额(2位小数)
};

(5)UFMobileCodeRow

在这里插入图片描述

UFMobileCodeRow *mobileCodeRow = [UFMobileCodeRow makeCodeRow:^(UFCodeRowMaker * _Nonnull make) {
            make
            .codeStyle([UFMobileCodeStyle makeMobileCodeStyle:^(UFMobileCodeStyleMaker * _Nonnull make) {
                make
                .backgroundColor([UIColor whiteColor])     // 设置按钮背景色
                .cornerRadius(5)                           // 设置按钮圆角
                .separatorColor([UIColor lightGrayColor]); // 设置输入框与按钮之间分割线的颜色
                // 其他属性不再赘述,参考UFRowTextStyleMaker设置
            }])
            .codeDidClicked(^(__kindof UFMobileCodeRow * _Nonnull row, UIButton * _Nonnull button) {
               //点击获取验证码事件
            })
            .maxLength(4)
            .limitType(UFInputLimitTypeNumbers)
            .title(@"验证码")
            .accessoryType(UFRowAccessorySpace)
            .name(@"code");

        // 其他属性不再赘述,参考UFTextFieldRow设置
    }];

UFKit提供了UIButton的倒计时方法

[button ufk_countDown:60]; // 60s倒计时

(6)UFPickerViewRow

在这里插入图片描述

 UFPickerViewRow *pickerViewRow = [UFPickerViewRow makePickerViewRow:^(UFPickerViewRowMaker * _Nonnull make) {
            make
            .itemArray(@[@"总经办",@"行政部",@"人力资源部",@"财务部",@"产品部",@"技术部",@"运营部"]) // 设置选项
            .title(@"部门")
            .value(@"技术部")
            .accessoryType(UFRowAccessoryDisclosureIndicator)
            .name(@"org");

        // 其他属性不再赘述,参考UFTextFieldRow设置
    }];   

(7)UFAreaPickerRow

在这里插入图片描述

UFAreaPickerRow *areaPickerRow = [UFAreaPickerRow makeAreaPickerRow:^(UFAreaPickerRowMaker * _Nonnull make) {
            make
            .areaSeparator(@",")     // 省市区之间的分割字符
            .title(@"地址")
            .accessoryType(UFRowAccessoryDisclosureIndicator)
            .name(@"address");

        // 其他属性不再赘述,参考UFPickerViewRow设置
    }];

(8)UFCustomPickerViewRow

在这里插入图片描述

UFCustomPickerViewRow *customPickerRow = [UFCustomPickerViewRow makeCustomPickerViewRow:^(UFCustomPickerViewRowMaker * _Nonnull make) {
              make.
              delegate(weakSelf)   // 设置代理
              .valueDidSelected(^(__kindof UFCustomPickerViewRow * _Nonnull row, UITextField * _Nonnull textField) {
                  // 选择结束后的确定事件
              })
              .title(@"选择器")
              .name(@"custom")
              .accessoryType(UFRowAccessoryDisclosureIndicator);;
          }];      

​ UFCustomPickerViewRowDelegate

// 列数
- (NSInteger)numberOfComponentsInPickerViewRow:(UFCustomPickerViewRow *)pickerViewRow;
// 每列的行数
- (NSInteger)pickerViewRow:(UFCustomPickerViewRow *)pickerViewRow numberOfRowsInComponent:(NSInteger)component;
// 行标题
- (NSString *)pickerViewRow:(UFCustomPickerViewRow *)pickerViewRow titleForRow:(NSInteger)row forComponent:(NSInteger)component;
// 选中行
- (void)pickerViewRow:(UFCustomPickerViewRow *)pickerViewRow didSelectRow:(NSInteger)row inComponent:(NSInteger)component;    

(9)UFMultiplePickerViewRow

在这里插入图片描述

UFMultiplePickerViewRow *multiplePickerViewRow = [UFMultiplePickerViewRow makeMultiplePickerViewRow:^(UFMultiplePickerViewRowMaker * _Nonnull make) {
        make
        .itemArray(@[@"看电影",@"旅游",@"看书",@"打游戏",@"篮球",@"足球",@"其他"])  // 设置选项
        .title(@"爱好")
        .value(@"打游戏,其他")
        .accessoryType(UFRowAccessoryDisclosureIndicator)
        .name(@"hobby");

    // 其他属性不再赘述,参考UFTextFieldRow设置
}];

(10)UFDatePickerRow

在这里插入图片描述

UFDatePickerRow *datePickerRow = [UFDatePickerRow makeDatePickerRow:^(UFDatePickerRowMaker * _Nonnull make) {
            make
            .minimumDate(最小时间)                    // 最小时间
            .maximumDate(最大时间)                    // 最大时间
            .datePickerMode(UIDatePickerModeDate)    // 时间选择样式
            .dateFormat(@"yyyy-MM-dd")               // 时间格式
            .title(@"生日")
            .value(@"2016-12-12")
            .accessoryType(UFRowAccessoryDisclosureIndicator)
            .name(@"birthday");

        // 其他属性不再赘述,参考UFTextFieldRow设置
    }];

(11)UFPlateNumberRow

在这里插入图片描述

 UFPlateNumberRow *plateNumberRow = [UFPlateNumberRow makePlateNumberRow:^(UFPlateNumberRowMaker * _Nonnull make) {
            make
            .title(@"车牌号")
            .value(@"鲁A12345")
            .accessoryType(UFRowAccessorySpace)
            .name(@"plate");

        // 其他属性不再赘述,参考UFTextFieldRow设置
    }];  

(12)UFTextViewRow

在这里插入图片描述

UFTextViewRow *textViewRow = [UFTextViewRow makeTextViewRow:^(UFTextViewRowMaker * _Nonnull make) {
            make
            .title(@"个人简介")
            .value(@"苹果公司是美国一家高科技公司。由史蒂夫·乔布斯、斯蒂夫·沃兹尼亚克和罗·韦恩等人于1976年4月1日创立,总部位于加利福尼亚州的库比蒂诺")
            .accessoryType(UFRowAccessorySpace)
            .name(@"introduction");
        }];   

(13)UFSwitchRow

在这里插入图片描述

UFSwitchRow *switchRow = [UFSwitchRow makeSwitchRow:^(UFSwitchRowMaker * _Nonnull make) {
          make
          .tintColor([UIColor redColor])     // 设置开关颜色
          .title(@"免打扰")
          .value(SWITCH_ON)
          .accessoryType(UFRowAccessorySpace)
          .valueDidChanged(^(__kindof UFRow * _Nonnull row, NSString * _Nonnull value) {
              // 开关事件
          })
          .name(@"allow");
      }];

UFKit提供了 SWITCH_ON (开)和 SWITCH_OFF (关)的常量定义

3、如何自定义行

1、继承UFRow创建其子类

2、继承UFRowCell创建其子类

3、注册Row和cell到formView

UFFormView *formView = [UFFormView makeFormView:^(UFFormViewMaker * _Nonnull make) {
            make
            .registerRow([CustomRow class], [CustomRowCell class]);
            }];
4、如何查找行?
// 根据名称查找
UFRow *row = [formView findRowByName:@"name"];

// 根据位置查找,如第1组第4行 UFRow *row = [formView findRowInRange:UFMakeRange(0, 3)];

5、添加行到组
UFSection *section = [UFSection makeSection:^(UFSectionMaker * _Nonnull make) {
        make
        .addRow(/*你定义的行*/);
}];
 UFSection *section = [UFSection makeSection:^(UFSectionMaker * _Nonnull make) {
                    make
                    .addRowWithBlock(^__kindof UFRow * _Nonnull{
                        // 你定义的行
                        UFRow *row = [[UFRow alloc] init];
                        return row;
                    });
            }];

5、提交

1、添加提交按钮

在这里插入图片描述

在这里插入图片描述

UFActionButton *submitButton = [UFActionButton makeActionButton:^(UFActionButtonMaker * _Nonnull make) {
            make
            .titleForState(@"提交", UIControlStateNormal)
            .titleColorForState([UIColor whiteColor], UIControlStateNormal)
            .cornerRadius(22)
            .backgroundColor([UIColor redColor])
            .actionButtonClick(^(UFActionButton * _Nonnull button) {
                // 点击提交事件
            });
        }];
[UFFormView makeFormView:^(UFFormViewMaker * _Nonnull make) {
            make
            .addSubmitButton(submitButton)
            .addCancelButton(cancelButton);
    }];

2、获取表单数据

[formView toDictionary];

6、依赖

'Masonry', '~> 1.1.0'

'SDWebImage', '~> 5.0.6'

'IQKeyboardManager', '~> 6.3.0'

7、安装

pod 'UFKit'

8、联系方式

QQ:893419255(请注明UFKit)


版本记录:

  • ###### 1.1.17

支持国际化(简体中文、繁体中文、英文)

  • ###### 1.2.0
    支持自适应高度、暗黑模式

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.