iOS XLForm框架的使用

还款日.png

1.创建一个继承于XLFormViewController的控制器

@interface BankCardInformationViewController : XLFormViewController

2.实现3个方法

-(instancetype)initWithCoder:(NSCoder *)coder
{
    self = [super initWithCoder:coder];
    if (self) {
        [self initializeForm];
    }
    return self;
}

-(instancetype)init
{
    self = [super init];
    if (self){
        [self initializeForm];
    }
    return self;
}

-(void)initializeForm
{

}

3.创建单元格

-(void)initializeForm
{
    //创建表单
    XLFormDescriptor * form = [XLFormDescriptor formDescriptor];
    //创建组
    XLFormSectionDescriptor * section = [XLFormSectionDescriptor formSection];
    //创建行
    XLFormRowDescriptor * row = [XLFormRowDescriptor formRowDescriptorWithTag:@"securityCode"   rowType:XLFormRowDescriptorTypePhone title:@"安全码"];
    //单元格高度
    row.height = 60;
    //设置占位文本颜色
    [row.cellConfigAtConfigure setObject:@"卡背面末三位"  forKey:@"textField.placeholder" ];
    //限制输入的字数
    [row.cellConfigAtConfigure setObject:@(3) forKey:@"textFieldMaxNumberOfCharacters"];
    //设置标题颜色
    [row.cellConfig setObject:[UIColor blackColor] forKey:@"textLabel.textColor"];
    //添加到组上
    [section addFormRow:row];
    [form addFormSection:section];
    self.form = form;
}

4.获取输入的值

NSDictionary *dict = [self.form formValues];

5.根据输入的值改变按钮背景颜色

-(void)formRowDescriptorValueHasChanged:(XLFormRowDescriptor *)rowDescriptor oldValue:(id)oldValue newValue:(id)newValue
{
    NSDictionary *dict = [self.form formValues];
    NSLog(@"%@",dict);
    // super implmentation MUST be called
    [super formRowDescriptorValueHasChanged:rowDescriptor oldValue:oldValue newValue:newValue];
    if (![dict[@"idCard"] isEqual:[NSNull null]] && ![dict[@"phone"] isEqual:[NSNull null]] && ![dict[@"securityCode"] isEqual:[NSNull null]] && ![dict[@"validity"] isEqualToString:@"信用卡有效期"]) {
        self.nextBtn.enabled = YES;
        self.nextBtn.backgroundColor = RGBColor(223, 97, 98, 1);
    }else{
        self.nextBtn.enabled = NO;
        self.nextBtn.backgroundColor = RGBColor(222, 222, 222, 1);
    }
}

6.自定义cell

#import "ValidityCell.h"

@implementation ValidityCell

NSString * const Validity = @"Validity";


- (void)awakeFromNib {
    [super awakeFromNib];
    // Initialization code
}
+(void)load
{
    [XLFormViewController.cellClassesForRowDescriptorTypes setObject:[ValidityCell class] forKey: Validity];
}
//初始化所有对象
- (void)configure{

}
//更新单元当它将要呈现
- (void)update
{
    [super update];

}

//点击单元格时调用
- (void)formDescriptorCellDidSelectedWithFormController:(XLFormViewController *)controller{

}

6.给cell赋值

//self.repayPeriods(是XLFormRowDescriptor对象)

[self.repayPeriods.cellConfig setObject:day  forKey:@"_payDay" ];
//刷新单元格
 [self reloadFormRow:self.repayPeriods];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 30,073评论 8 265
  • 荷月芙蓉映骄阳,华夏连雨漫庭堂。一声俗语评天意,六月天气变脸忙。
    Paul沐风阅读 2,241评论 0 0
  • 七月。正如我有过的梦。 夏天的我。静静坐在窗边。天空中,云波流转。绯色轻云与胧月交辉。 傍晚。享受着金色神的光辉。...
    斐狐阅读 3,382评论 0 0
  • 谈产品欢迎您的到来。 一、专题简介 这里是简书产品汪聚集地,你可以在该专题投稿,优质内容则有机会被首页推荐。 该专...
    446ba1b88cae阅读 3,180评论 0 0

友情链接更多精彩内容