DSForm 1.0.8

DSForm 1.0.8

Dimitar Stefanovski 维护。




DSForm 1.0.8

DSForm Logo Build Status codecov Cocoapods platforms GitHub repo size Gitter GitHub Cocoapods Website

Swift 框架,用于创建动态表单。

DSForm

简单易实现的 iOS Swift 框架,用于构建表单。它基于 UICollectionViewController 组件。

支持 4 种基本表单元素类型

  1. FormElementTitle(表单顶部标题标签)
  2. FormElementButtonUIButton 控件的子类)
  3. FormElementTextFieldUITextField 控件的子类)
  4. FormElementLabelUILabel 控件的子类)

要求

  • Xcode 10.2
  • Swift 5.0

安装

CocoaPods

# Podfile
use_frameworks!

target 'YOUR_TARGET_NAME' do
    pod 'DSForm'
end

替换 YOUR_TARGET_NAME,然后在 Podfile 目录中输入:

$ pod install

示例用法

  1. 创建一个新的 UICollectionViewController 并使其成为 FormCollectionViewController 的子类。
  2. 在 `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

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

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

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

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 样式

模拟器屏幕录制

DSForm Screencast

模拟器截图

Xcode截图