程序员人生 网站导航

iOS开发一行代码系列:一行搞定输入框

栏目:互联网时间:2014-11-05 08:38:24

最近总结了下开发进程中经常使用的功能,发现有时候我在做重复性的劳动。因而决定把经常使用的功能抽出来,方便下次使用。

我的想法是:用最少的代码来解决问题。因而写了1些经常使用的工具类,名字就叫1行代码系列吧。。。好像挺挫的。。

大致内容有:

1、1行弄定输入框

2、1行弄定网络要求

3、1行弄定上下拉刷新(会自动判断是上拉还是下拉还是二者并存)

4、1行弄定http://www.wfuyu.com/db/(最近还在写,功能已基本实现)

5、1行弄定图片保存

6、1行弄定定位

7、1行弄定网络状态变化

8、1行弄定X(功能小集合)



1行弄定输入框

输入框常常见到,特别是注册的时候需要填写1大堆信息,这时候候就会有2个问题:输入框被键盘遮挡,键盘如何消失。

当时斟酌到1种情况是: 所有的输入框都不是同级的,就是多个视图嵌套,然后里面有N个输入框,输入框多是UITextField,UITextView,UISearchBar。因而就依照这类情况写了下,至于中间的Bug,大家可以提出修改。

由于个人的局限性太大了,还是希望大家Fork并修改,这样其他人也能够用到你写的工具,不要弄甚么技术垄断之类的。

原理:从相对根视图遍历子视图,如果子视图是UITextField,UITextView,UISearBar,就把它的inputAccessoryView设置为全局的toolBar,同时记下它的相对坐标,以此类推。

使用:使用只要1行代码,它会自动判断坐标,同时你可以控制键盘的消失方式:点击视图消失,还是点击键盘外的某处消失,还是点击完成消失。


- (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种类型。常见的就能够啦。。


源码:

点击这里   或       点我


------分隔线----------------------------
------分隔线----------------------------

最新技术推荐