近期总结了下开发过程中经常使用的功能,发现有时候我在做反复性的劳动。于是决定把经常使用的功能抽出来,方便下次使用。

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

大致内容有:

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开发一行代码系列:一行搞定输入框的更多相关文章

  1. python一行代码就能搞定的事情!

    打印9*9乘法表: >>> print( '\n'.join([' '.join(['%s*%s=%-2s' % (y,x,x*y) for y in range(1,x+1)]) ...

  2. python实战===一行代码就能搞定的事情!

    打印9*9乘法表: >>> print( '\n'.join([' '.join(['%s*%s=%-2s' % (y,x,x*y) for y in range(1,x+1)]) ...

  3. iOS开发一行代码系列:一行搞定数据库

    原理 iOS 和 SQL的相应关系 Model类结构      =>    SQL表结构 Model实例       =>  SQL表中的一行 Model实例的属性   =>   S ...

  4. iOS开发——实用技术OC篇&8行代码教你搞定导航控制器全屏滑动返回效果

    8行代码教你搞定导航控制器全屏滑动返回效果 前言 如果自定了导航控制器的自控制器的leftBarButtonItem,可能会引发边缘滑动pop效果的失灵,是由于 self.interactivePop ...

  5. (转载)Android快速开发偷懒必备,一句话搞定所有ViewGroup的Adapter . 支持自定义ViewGroup

    [置顶] [Android]快速开发偷懒必备,一句话搞定所有ViewGroup的Adapter . 支持自定义ViewGroup 标签: androidAdapter快速开发0耦合 2016-12-1 ...

  6. BS开发平台,一小时搞定功能强大的统计分析页面

    BS开发平台,一小时搞定功能强大的统计分析页面,拥有强大的功能和详细的权限控制. 1.组织数据,分析需求(实际耗时大约20分钟)  2.建立需要的业务数据表(大致10分钟)3. 运行代码工具,生产需要 ...

  7. iOS开发通过代码方式使用AutoLayout (NSLayoutConstraint + Masonry)

    iOS开发通过代码方式使用AutoLayout (NSLayoutConstraint + Masonry) 随着iPhone6/6+设备的上市,如何让手头上的APP适配多种机型多种屏幕尺寸变得尤为迫 ...

  8. 几行c#代码,轻松搞定一个女大学生

    几行c#代码,轻松搞定一个女大学生 的作业... 哈哈,标题党了哈,但是是真的,在外面敲代码,想赚点外快,接到了一个学生的期末考试,是一个天气预报的程序.程序并不难. 看到这个需求第一个想法就是只要找 ...

  9. iOS开发 纯代码创建UICollectionView

    转:http://jingyan.baidu.com/article/eb9f7b6d8a81a5869364e8a6.html iOS开发 纯代码创建UICollectionView 习惯了使用xi ...

随机推荐

  1. Java IO-InputStream家族 -装饰者模式

    最近看到一篇文章,初步介绍java.io.InputStream,写的非常通俗易懂,在这里我完全粘贴下来. 来源于 https://mp.weixin.qq.com/s/hDJs6iG_YPww7ye ...

  2. Spring生态简介

    目录 概述 项目说明 主要项目 社区项目 保留项目 最后总结 概述 做Java开发的人一提起Spring,首先在脑海中浮现出的就是"IoC","AOP",&qu ...

  3. python笔记:字符编码

    ASCII编码 知识点:计算机中最小的单位是bit,bit就咱们常说一位二进制,一位二进制要么是0 要么是 1.但是bit这个单位太小了,我们用字节(byte)来表示.换算的规则如下: 8b = 1B ...

  4. 46.Qt 使用OpenGL绘制立方体

    main.cpp #include <QApplication> #include <iostream> #include "vowelcube.h" in ...

  5. 3.Ventuz Designer新建项目Demo

    Ventuz Designer新建项目Demo 1.打开ventuz,点Recent Projects>New Project,在弹出的界面填写具体项目信息,如下图: 图1.1 图1.2 2.在 ...

  6. 基于jQuery封装一个瀑布流插件

    /*封装一个瀑布流插件*/ (function($){ $.fn.WaterFall = function(){ /*这是你初始化 调用这个方法的时候的 那个jquery选着到的dom对象 this* ...

  7. Android 拍照图片选取与图片剪裁

    最近从以前的项目中扒下来一个常用的模块,在这里有必要记录一下的,就是android上获取图片以及裁剪图片,怎么样?这个功能是不是很常用啊,你随便打开一个App,只要它有注册功能都会有设置人物头像的功能 ...

  8. 使用Word 2010群发邮件

    1.建立数据库,这里我使用了excel 字段:电子邮件地址,名字 填写需要发送的数据 2.新建word文档,这里我使用了word2010 点击工具栏邮件 开始邮件合并,电子邮件 选择收件人,使用现有列 ...

  9. jQuery 插入元素

    在被选元素的内部 prepend() 方法在被选元素的开头(仍位于内部)插入指定内容. append() 方法在被选元素的结尾(仍然在内部)插入指定内容.

  10. forEach 列出数组的每个元素:

    数组.forEach便利所有的元素 array.forEach(function(currentValue, index, arr), thisValue) function(currentValue ...