为什么80%的码农都做不了架构师?>>>   

1.简介

FXForms是一个简单的表单提交框架,他的作者是鼎鼎大名的 Nick Lockwood,你也许听说过他的其他的一些框架,比如 iCarousel.

为什么使用FxForms?

  1. 表单处理简单化,使开发者能轻松上手
  2. 表单自适应不同屏幕

FXForms是怎么工作的?

Fields will automatically be assigned suitable control types, for example, the rememberMe field will be displayed as a UISwitch, the email field will automatically have a keyboard of type UIKeyboardTypeEmailAddress and the password field will automatically have secureTextEntry enabled.

根据它的官方解释,FXForms上面的每一个元素是根据类型来自动生成的,比如 NSString 会自动生成一个 UITextField. UIDate 会自动生成一个DateTime Picker等等。

项目主页:https://github.com/nicklockwood/FXForms

项目的本身自带了很好的例子,在此不再重复。示例工程给出一个入门的例子,能够帮助大家快速上手。

示例工程:https://github.com/ios122/ios122

2.安装

安装的方式通常有两种,Cocopods, 源代码安装。后一种安装方式很直观,只需要把相应的 FXForms.h 和 FXForms.m拖到项目中即可。这里我们简单介绍一下cocopods的安装:

Step 1. 新建一个iOS工程,在工程根目录下新建一个文件 Podfile, 内容如下:

pod 'FXForms'

Step 2. Run:

pod update --verbose --no-repo-update

~安装完毕, 请打开xcworkspace,示例中是 FXFormsTutorial.xcworkspace

3. 基本的使用规则

这里我们使用一个最常见的例子:登录。

Example : 登录View

Step 1, 生成一个新的类,使这个类继承 NSObject,同时 Delegate FXForm, 代码如下:

LoginFXForm.h

//
//  LoginFXForm.h
//  FXFormsTutorial
//
//  Created by arkilis on 28/11/2015.
//  Copyright © 2015 arkilis. All rights reserved.
//#import <UIKit/UIKit.h>
#import "FXForms.h"@interface LoginFXForm : NSObject <FXForm>@property (nonatomic, copy)     NSString        *email;
@property (nonatomic, copy)     NSString        *password;@end

LoginFXForm.m

#import "LoginFXForm.h"@implementation LoginFXForm// 定制 Form// -- username
- (NSDictionary *)emailField{return @{FXFormFieldHeader:         @"Login",       // Form TitleFXFormFieldKey:            @"email",       // 对应的 keyFXFormFieldTitle:          @"Email",       // 字段的 Title};
}
// -- password
- (NSDictionary *)passField {return @{FXFormFieldKey:            @"password",    // 这里如果FXForm知道这里用的是密码,则自动屏蔽密码,用星标代替FXFormFieldTitle:          @"password",};
}// Submit button and return button
- (NSArray *)extraFields
{return @[// 这里你不用在头文件里声明, 只需要在返回的 NSArray中添加一个元素即可@{FXFormFieldTitle: @"Submit", FXFormFieldHeader: @"", FXFormFieldAction: @"submitLoginForm:"},@{FXFormFieldTitle: @"Return", FXFormFieldHeader: @"", FXFormFieldAction: @"returnPreviousView"},];
}@end

在注释中,我做了一些详细的解释。

4. 一些技巧

  1. 有的时候我们需要给字段设定一些默认值,比如Email。我们可以设置字段 FXFormFieldDefaultValue:
// -- username
- (NSDictionary *)emailField{return @{FXFormFieldHeader:         @"Login",       // Form TitleFXFormFieldKey:            @"email",       // 对应的 keyFXFormFieldTitle:          @"Email",       // 字段的 TitleFXFormFieldDefaultValue:   @"Your Email"   // 字段的预留信息  <--};
}

注意这个option跟FXFormFieldPlaceholder是不一样的,FXFormFieldPlaceholder仍能让你输入,而FXFormFieldDefaultValue是默认值

  1. 设置只读, 有些时候我们要设置一些表单字段为只读。
// -- username
- (NSDictionary *)emailField{return @{FXFormFieldHeader:         @"Login",       // Form TitleFXFormFieldKey:            @"email",       // 对应的 keyFXFormFieldTitle:          @"Email",       // 字段的 TitleFXFormFieldPlaceholder:    @"Your Email",  // 字段的预留信息@"textField.enabled":      @(NO)           // set readonly};
}

5. 联系我

如有什么问题,可以联系我: arkilis#gmail.com


注: 文章由我们 iOS122 的小伙伴 @Arkilis 整理,喜欢就一起参与: iOS122 任务池

转载于:https://my.oschina.net/ios122/blog/537375

FXForms,自动生成iOS表单相关推荐

  1. iOS表单input自动填充后背景色变为黄色

    ios表单Input自动填充背景色变为黄色 问题描述 解决方案 问题描述 在开发页面的时候发现,在iOS上input框自动填充后input的背景色变为黄色,再点击一下就可以恢复正常. 解决方案 设置自 ...

  2. 使用Vue动态生成form表单的实例代码

    具有数据收集.校验和提交功能的表单生成器,包含复选框.单选框.输入框.下拉选择框等元素以及,省市区三级联动,时间选择,日期选择,颜色选择,文件/图片上传功能,支持事件扩展. 欢迎大家star学习交流: ...

  3. 配置spring整合jpa自动生成数据表

    配置spring整合jpa自动生成数据表 applicationContext.xml <?xml version="1.0" encoding="UTF-8&qu ...

  4. 如何自动生成推荐歌单:ACM论文翻译与解读 | Translation and Interpretation of ACM Survey

    如何自动生成推荐歌单:ACM论文翻译与解读 | How to Automatically Generate Music Playlists: Translation and Interpretatio ...

  5. 网页自动提交Form表单的方法

    最近做网站运营用到了邮件营销,使用了搜狐的sendcloud邮件代发平台.要想使用sendcloud平台发送邮件给客户,就必须调用他们的API接口进行批量发送,那么问题来了.sendcloud提供了好 ...

  6. 动态生成form表单,不在为表单烦恼

    form-create 具有动态渲染.数据收集.校验和提交功能的表单生成器,动态生成Form表单.支持双向数据绑定和事件扩展,组件包含有复选框.单选框.输入框.下拉选择框等表单元素以及省市区三级联动, ...

  7. Hibernate中自动生成数据库表的两种方式

    第一种方式:Hibernate中利用工具类自动生成数据库表 1.建好POJO object, XML Mapping File,配置文件(hibernate.cfg.xml). 2.编写工具类 imp ...

  8. 使用hibernate自动生成数据库表

    使用hibernate自动生成数据库表 使用hibernate自动生成数据库表在hibernate3.2以后有两种方式: 1,使用hbm.xml形式:2,使用注解的形式. 本文介绍第一种方式: IDE ...

  9. php文本框自动补全,PHP自动补全表单的两种方法

    效果图: 第一种:从数据库中检索之后补全 第二种:邮箱等纯前端的补全 先说第二种,使用开源的插件,所以相对简单. github上面的项目 completer. https://github.com/f ...

最新文章

  1. 我的 FPGA 学习历程(13)—— 电子钟项目
  2. Oracle Listener 动态注册 与 静态注册
  3. Linux 下安装python软件包(pip、nose、virtualenv、distribute )
  4. 【测绘程序设计】视距测量神器V1.0(附源程序)
  5. 济宁医学院计算机专业好就业吗,山东这3所医学院实力强,就业率高,中等生可捡漏...
  6. 全面整理(随时更新)
  7. 一款“灵动”的滑动按钮
  8. 解决SecureCRT连接linux超时后断开
  9. pythonATM,购物车项目实战2,主函数入口
  10. WPF TreeView tools
  11. 中科院-杨力祥视频教程 03课程
  12. 桌面的文件突然不见了怎么恢复?分享3个恢复指南
  13. HTTP接口设计规范
  14. 用对分法求解方程x^3-x^2-x-1=0
  15. html 中thead标签,HTML thead 标签
  16. [課程筆記] 機器學習2021(李弘毅) L13. Transformer (下)
  17. WSL Ubuntu忘记root密码和用户密码
  18. 京东搭配购怎么设置,操作指南来啦
  19. Android开发:手机震动工具类
  20. 秦九邵算法计算多项式(C语言实现)

热门文章

  1. 大学生使用计算机趋势英语作文,学习使用电脑StudentUseofComputers
  2. 20200729:力扣199周周赛题解(下)
  3. Mysql存储过程老是报错_mysql中看看这个存储过程老是报错,该如何处理
  4. php 分页类 bootstrap,ThinkPHP分页使用bootstrap样式
  5. java 中class相关的问题
  6. [网络收集]LINUX磁盘挂载mount和共享
  7. gnome桌面环境 kde桌面环境的区别
  8. 两个股市真理之间的矛盾
  9. 前腾讯AI Lab主任张潼加盟创新工场,出任港科大创新工场联合实验室主任
  10. 明略数据(现在)是一家怎样的公司?