发布于 2016-01-13 04:34:34 | 195 次阅读 | 评论: 0 | 来源: PHPERZ

这里有新鲜出炉的精品教程,程序狗速度看过来!

FXForms iOS 表单控件

FXForms 是个 Objective-C 库,可以很简单的创建基于表格的 iOS 表单。这个控件非常适用于设置页面或者用户数据条目任务。


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 Title
             FXFormFieldKey:            @"email",       // 对应的 key
             FXFormFieldTitle:          @"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 Title
             FXFormFieldKey:            @"email",       // 对应的 key
             FXFormFieldTitle:          @"Email",       // 字段的 Title
             FXFormFieldDefaultValue:   @"Your Email"   // 字段的预留信息  <--
             };
}

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

  1. 设置只读, 有些时候我们要设置一些表单字段为只读。

// -- username
- (NSDictionary *)emailField{
    return @{
             FXFormFieldHeader:         @"Login",       // Form Title
             FXFormFieldKey:            @"email",       // 对应的 key
             FXFormFieldTitle:          @"Email",       // 字段的 Title
             FXFormFieldPlaceholder:    @"Your Email",  // 字段的预留信息
             @"textField.enabled":      @(NO)           // set readonly
             };
}


最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务