SwiftForms 是一个用 Swift 编写的功能强大且极灵活的库,允许您仅通过定义几行代码即可创建表单。它还提供了自定义单元格外观、使用自定义单元格和定义您自己的选择控制器的能力。
#####以下是使用 SwiftForms 的示例应用程序的屏幕截图
使用 SwiftForms 创建表单非常简单。您只需要从 FormViewController
取代您的控制器并定义一个 FormDescriptor
实例及其部分和行。这里是创建一个简单的表单以输入电子邮件和用户密码的示例。
// Create form instace
var form = FormDescriptor()
form.title = "Example form"
// Define first section
var section1 = FormSectionDescriptor()
var row = FormRowDescriptor(tag: "name", rowType: .Email, title: "Email")
section1.rows.append(row)
row = FormRowDescriptor(tag: "pass", rowType: .Password, title: "Password")
section1.rows.append(row)
// Define second section
var section2 = FormSectionDescriptor()
row = FormRowDescriptor(tag: "button", rowType: .Button, title: "Submit")
section2.rows.append(row)
form.sections = [section1, section2]
self.form = form
要查看更复杂的表单定义,您可以查看示例应用程序。
每个行描述符都有一个 configuration
字典,它允许您自定义单元格的外观和行为。为了更改行的具体视觉方面,只需将 row.configuration.cell.appearance
中的值设置为包含自定义键值编码属性的字典。
以下是一个示例
row.configuration.cell.appearance = ["titleLabel.font" : UIFont.boldSystemFontOfSize(30.0), "segmentedControl.tintColor" : UIColor.redColor()]
此外,您可以通过从 FormBaseCell
类派生来创建 100% 自定义的单元格。在这种情况下,请不要忘记重写 configure
和 update
方法。第一个方法将在单元格创建后被调用一次,而第二个方法则每次应刷新单元格内容时都会被调用。
这里有帮助您定义自定义单元格行为的函数。
func configure() {
/// override
}
func update() {
/// override
}
class func formRowCellHeight() -> CGFloat {
return 44.0
}
class func formViewController(formViewController: FormViewController, didSelectRow: FormBaseCell) {
}
一旦您定义了您自定义的单元格,为了使其可用于具体的行,您必须设置 FormRowDescriptor
的 cellClass
属性。
为了自定义选择控制器,您的类应该符合 FormSelector
协议。这样,您将能够访问推控制器的单元格实例,并能够根据用户交互修改其属性或设置其行值。
在定义了您的类之后,不要忘记在配置字典中设置 row.configuration.selection.controllerClass
的值以使用您的自定义选择控制器。
SwiftForms最初基于 XLForm github 项目。(https://github.com/xmartlabs/XLForm)
有关详细信息,请检查 LICENSE 文件。
如果您在使用 SwiftForms 的项目中有任何建议或问题
Miguel Angel Ortuño,[email protected]