Swift 框架,用于创建动态表单。
DSForm
简单易实现的 iOS Swift 框架,用于构建表单。它基于 UICollectionViewController 组件。
支持 4 种基本表单元素类型
FormElementTitle(表单顶部标题标签)FormElementButton(UIButton控件的子类)FormElementTextField(UITextField控件的子类)FormElementLabel(UILabel控件的子类)
要求
- Xcode 10.2
- Swift 5.0
安装
CocoaPods
# Podfile
use_frameworks!
target 'YOUR_TARGET_NAME' do
pod 'DSForm'
end替换 YOUR_TARGET_NAME,然后在 Podfile 目录中输入:
$ pod install示例用法
- 创建一个新的
UICollectionViewController并使其成为FormCollectionViewController的子类。 - 在 `viewDidLoad()` 方法中将
formDelegate设置为self,这样我们就可以在我们的类中使用FormDelegate协议的方法。
import UIKit
import DSForm
class ViewController: FormCollectionViewController, FormDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let element1 = FormElementTitle(text: "Please Sign Up")
let element2 = FormElementTextField(text: "Username")
let element3 = FormElementTextField(text: "Password")
let element4 = FormElementButton(title: "Sign Up")
fields = [element1, element2, element3, element4]
formDelegate = self
}
func didSubmitForm(fields: [String : String]) {
print(fields)
}
}表单元素
DSForm 在我们的集合内支持 4 个基本的表单元素
FormElementTitle
它定义了表单的标题,并且它是标准 UILabel 控件的子类。
let element1 = FormElementTitle(text: "Please Sign Up")FormElementTitle 可用的公共属性
public var font: UIFont
public var identifier: String
public var backgroundColor: UIColor
public var fontColor: UIColor
public var text: StringFormElementTextField
支持用户输入,它是标准 UITextField 控件的子类。
var element2 = FormElementTextField(text: "Username")
element2.topLabel = "Username"FormElementTextField 可用的公共属性
public var font: UIFont
public var identifier: String
public var backgroundColor: UIColor
public var fontColor: UIColor
public var topLabel: String
public var placeholder: String
public var validation: DSForm.FormValidation
public var text: StringFormElementButton
标准 UIButton 控件的子类。
let element4 = FormElementButton(title: "Sign Up")FormElementButton 可用的公共属性
public var font: UIFont
public var identifier: String
public var backgroundColor: UIColor
public var fontColor: UIColor
public var title: StringFormElementLabel
标准 UILabel 控件的子类。
let element5 = FormElementLabel(text: "Sample text")FormElementLabel 可用的公共属性
public var font: UIFont
public var identifier: String
public var backgroundColor: UIColor
public var fontColor: UIColor
public var text: String待办事项
- 添加对更多表单元素和变体的支持(图片、复选框、单选按钮等...)
- 在
UITextField中添加验证(电话号码、电子邮件地址、数字、正则表达式、密码等...) - 为表单元素添加更多样式
- 添加更多单元测试
- 为每个新功能添加详细文档
完成
- 在表单元素之间添加空白空间(元素)
- 添加了元素尺寸属性
- 添加了
CollectionViewUIEdgeInsets属性 - 为
FormElementTextField添加了占位文本 - 为
FormElementTextField添加了新的.Line样式









