iOS开发一行代码系列:一行搞定输入框
2014-10-31 09:56
316 查看
最近总结了下开发过程中常用的功能,发现有时候我在做重复性的劳动。于是决定把常用的功能抽出来,方便下次使用。
我的想法是:用最少的代码来解决问题。于是写了一些常用的工具类,名字就叫一行代码系列吧。。。好像挺挫的。。
大致内容有:
1、一行搞定输入框
2、一行搞定网络请求
3、一行搞定上下拉刷新(会自动判断是上拉还是下拉还是两者并存)
4、一行搞定数据库(最近还在写,功能已经基本实现)
5、一行搞定图片保存
6、一行搞定定位
7、一行搞定网络状况变化
8、一行搞定X(功能小集合)
一行搞定输入框
输入框经常见到,特别是注册的时候需要填写一大堆信息,这时候就会有2个问题:输入框被键盘遮挡,键盘如何消失。
当时考虑到一种情况是: 所有的输入框都不是同级的,就是多个视图嵌套,然后里面有N个输入框,输入框可能是UITextField,UITextView,UISearchBar。于是就按照这种情况写了下,至于中间的Bug,大家可以提出修改。
因为个人的局限性太大了,还是希望大家Fork并修改,这样其他人也可以用到你写的工具,不要搞什么技术垄断之类的。
原理:从相对根视图遍历子视图,如果子视图是UITextField,UITextView,UISearBar,就把它的inputAccessoryView设置为全局的toolBar,同时记下它的相对坐标,以此类推。
使用:使用只要一行代码,它会自动判断坐标,同时你可以控制键盘的消失方式:点击视图消失,还是点击键盘外的某处消失,还是点击完成消失。
- (void)viewDidLoad {
[super viewDidLoad];
[inputHelper setupInputHelperForView:self.view withDismissType:InputHelperDismissTypeTapGusture];
}
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
typedef NS_ENUM(NSInteger, InputHelperDismissType) {
InputHelperDismissTypeNone = 0,
InputHelperDismissTypeCleanMaskView,
InputHelperDismissTypeTapGusture
};
@interface InputHelper : NSObject
+ (InputHelper *)sharedInputHelper;
- (void)dismissInputHelper;
- (void)setupInputHelperForView:(UIView *)view withDismissType:(InputHelperDismissType)dismissType;
@end
#define inputHelper [InputHelper sharedInputHelper]
支持类型:
支持UITextField,UITextView,UISearBar 3种类型。常见的就可以啦。。
源码:
点击这里 或者 点我
我的想法是:用最少的代码来解决问题。于是写了一些常用的工具类,名字就叫一行代码系列吧。。。好像挺挫的。。
大致内容有:
1、一行搞定输入框
2、一行搞定网络请求
3、一行搞定上下拉刷新(会自动判断是上拉还是下拉还是两者并存)
4、一行搞定数据库(最近还在写,功能已经基本实现)
5、一行搞定图片保存
6、一行搞定定位
7、一行搞定网络状况变化
8、一行搞定X(功能小集合)
一行搞定输入框
输入框经常见到,特别是注册的时候需要填写一大堆信息,这时候就会有2个问题:输入框被键盘遮挡,键盘如何消失。
当时考虑到一种情况是: 所有的输入框都不是同级的,就是多个视图嵌套,然后里面有N个输入框,输入框可能是UITextField,UITextView,UISearchBar。于是就按照这种情况写了下,至于中间的Bug,大家可以提出修改。
因为个人的局限性太大了,还是希望大家Fork并修改,这样其他人也可以用到你写的工具,不要搞什么技术垄断之类的。
原理:从相对根视图遍历子视图,如果子视图是UITextField,UITextView,UISearBar,就把它的inputAccessoryView设置为全局的toolBar,同时记下它的相对坐标,以此类推。
使用:使用只要一行代码,它会自动判断坐标,同时你可以控制键盘的消失方式:点击视图消失,还是点击键盘外的某处消失,还是点击完成消失。
- (void)viewDidLoad {
[super viewDidLoad];
[inputHelper setupInputHelperForView:self.view withDismissType:InputHelperDismissTypeTapGusture];
}
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
typedef NS_ENUM(NSInteger, InputHelperDismissType) {
InputHelperDismissTypeNone = 0,
InputHelperDismissTypeCleanMaskView,
InputHelperDismissTypeTapGusture
};
@interface InputHelper : NSObject
+ (InputHelper *)sharedInputHelper;
- (void)dismissInputHelper;
- (void)setupInputHelperForView:(UIView *)view withDismissType:(InputHelperDismissType)dismissType;
@end
#define inputHelper [InputHelper sharedInputHelper]
支持类型:
支持UITextField,UITextView,UISearBar 3种类型。常见的就可以啦。。
源码:
点击这里 或者 点我
相关文章推荐
- iOS开发一行代码系列:一行搞定输入框优化
- iOS开发一行代码系列:一行搞定输入框
- iOS开发一行代码系列:一行搞定数据库
- iOS开发一行代码系列:一行搞定数据库
- 【iOS 1 行代码系列】之 一行代码搞定automaticallyAdjustsScrollViewInsets
- iOS开发tableView中如何使headView与上边岩向下偏移,一行代码就可以搞定
- iOS开发-一行代码搞定自动布局
- 一行代码搞定Weex蓝牙开发
- iOS应用开发最佳实践系列一:编写高质量的Objective-C代码
- iOS-UITextView 输入字数限制一行代码搞定
- iOS应用开发最佳实践系列一:编写高质量的Objective-C代码
- iOS - 一行代码搞定button的图片与文字的位置
- iOS开发总结之项目开发中使用UITableView几百行代码搞定级联表格
- ios-UITextView 输入字数限制,一行代码搞定
- 一行代码不用敲,15分钟轻松搞定GIS开发,GISer福音,教你如何从下载到使用webappbuilder创建第一个应用程序(不用申请有使用期限的企业账号哦!)
- Web程序员开发App系列 - 调试Android和IOS手机代码(补图)
- IQKeyBoardManager - 不用写一行代码就完美解决IOS开发键盘遮挡的类库
- iOS应用开发最佳实践系列一:编写高质量的Objective-C代码
- iOS 3DES加密解密(一行代码搞定)
- iOS 3DES加密解密(一行代码搞定)