XLForm 检测行值的变化

Posted

技术标签:

【中文标题】XLForm 检测行值的变化【英文标题】:XLForm detect change to row value 【发布时间】:2014-08-14 18:01:14 【问题描述】:

我开始在 ios 上使用非常出色的 XLForm 项目 (https://github.com/xmartlabs/XLForm),但是我遇到了一些可能很容易回答但我无法弄清楚的问题。

我想检测行值的变化 - 例如文本字段或分段控件。我需要实施什么方法来捕捉这种变化?我猜测它来自控件本身,但由于 XLForm 管理控件,因此我不清楚如何获取它。

非常感谢!

【问题讨论】:

【参考方案1】:
-(void)formRowDescriptorValueHasChanged:(XLFormRowDescriptor *)formRow oldValue:(id)oldValue newValue:(id)newValue


【讨论】:

【参考方案2】:

正如 Github 上所指出的,操作方法如下:

https://github.com/xmartlabs/XLForm#dynamic-forms---how-to-change-the-form-dynamically-at-runtime

【讨论】:

【参考方案3】:

别忘了打电话

[super formRowDescriptorValueHasChanged:oldValue:newValue]

这是上面的例子

-(void)formRowDescriptorValueHasChanged:(XLFormRowDescriptor *)formRow oldValue:(id)oldValue newValue:(id)newValue

    // super implementation MUST be called
    [super formRowDescriptorValueHasChanged:formRow oldValue:oldValue newValue:newValue];

    if ([formRow.tag isEqualToString:@"alert"])
        if ([[oldValue valueData] isEqualToNumber:@(0)] == NO && [[newValue valueData] isEqualToNumber:@(0)])
            [self.form removeFormRow:formRow];
        
    

【讨论】:

【参考方案4】:

对于 Swift:

override func formRowDescriptorValueHasChanged(formRow: XLFormRowDescriptor!, oldValue: AnyObject!, newValue: AnyObject!) 

print("changed!")


【讨论】:

以上是关于XLForm 检测行值的变化的主要内容,如果未能解决你的问题,请参考以下文章

XLForm Cell numberOfLines

Swift 中的 XLForm 验证

更改 XLFORM 行的值

安装 XLForm 后找不到 -lFirebase 的库

XLForm 目标-C |未知的属性属性“可为空”

iOS 7.1 上的 XLForm 空白