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: String
FormElementTextField
支持用户输入,它是标准 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: String
FormElementButton
标准 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: String
FormElementLabel
标准 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
中添加验证(电话号码、电子邮件地址、数字、正则表达式、密码等...) - 为表单元素添加更多样式
- 添加更多单元测试
- 为每个新功能添加详细文档
完成
- 在表单元素之间添加空白空间(元素)
- 添加了元素尺寸属性
- 添加了
CollectionView
UIEdgeInsets
属性 - 为
FormElementTextField
添加了占位文本 - 为
FormElementTextField
添加了新的.Line
样式