iOS开发一行代码系列:一行搞定输入框
近期总结了下开发过程中经常使用的功能,发现有时候我在做反复性的劳动。于是决定把经常使用的功能抽出来,方便下次使用。
我的想法是:用最少的代码来解决这个问题。于是写了一些经常使用的工具类,名字就叫一行代码系列吧。。。好像挺挫的。。
大致内容有:
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开发一行代码系列:一行搞定输入框的更多相关文章
- python一行代码就能搞定的事情!
打印9*9乘法表: >>> print( '\n'.join([' '.join(['%s*%s=%-2s' % (y,x,x*y) for y in range(1,x+1)]) ...
- python实战===一行代码就能搞定的事情!
打印9*9乘法表: >>> print( '\n'.join([' '.join(['%s*%s=%-2s' % (y,x,x*y) for y in range(1,x+1)]) ...
- iOS开发一行代码系列:一行搞定数据库
原理 iOS 和 SQL的相应关系 Model类结构 => SQL表结构 Model实例 => SQL表中的一行 Model实例的属性 => S ...
- iOS开发——实用技术OC篇&8行代码教你搞定导航控制器全屏滑动返回效果
8行代码教你搞定导航控制器全屏滑动返回效果 前言 如果自定了导航控制器的自控制器的leftBarButtonItem,可能会引发边缘滑动pop效果的失灵,是由于 self.interactivePop ...
- (转载)Android快速开发偷懒必备,一句话搞定所有ViewGroup的Adapter . 支持自定义ViewGroup
[置顶] [Android]快速开发偷懒必备,一句话搞定所有ViewGroup的Adapter . 支持自定义ViewGroup 标签: androidAdapter快速开发0耦合 2016-12-1 ...
- BS开发平台,一小时搞定功能强大的统计分析页面
BS开发平台,一小时搞定功能强大的统计分析页面,拥有强大的功能和详细的权限控制. 1.组织数据,分析需求(实际耗时大约20分钟) 2.建立需要的业务数据表(大致10分钟)3. 运行代码工具,生产需要 ...
- iOS开发通过代码方式使用AutoLayout (NSLayoutConstraint + Masonry)
iOS开发通过代码方式使用AutoLayout (NSLayoutConstraint + Masonry) 随着iPhone6/6+设备的上市,如何让手头上的APP适配多种机型多种屏幕尺寸变得尤为迫 ...
- 几行c#代码,轻松搞定一个女大学生
几行c#代码,轻松搞定一个女大学生 的作业... 哈哈,标题党了哈,但是是真的,在外面敲代码,想赚点外快,接到了一个学生的期末考试,是一个天气预报的程序.程序并不难. 看到这个需求第一个想法就是只要找 ...
- iOS开发 纯代码创建UICollectionView
转:http://jingyan.baidu.com/article/eb9f7b6d8a81a5869364e8a6.html iOS开发 纯代码创建UICollectionView 习惯了使用xi ...
随机推荐
- Amazon宣布将MXNet作为AWS的深度学习框架——貌似性能比tf高啊
Amazon公司的Werner Vogels于上周宣布Amazon深度学习框架将会正式选用MXNet,并且AWS将会通过增加源代码贡献.改进文档以及支持来自其它框架的可视化.开发以及迁移工具,为实现M ...
- Additive equations--zoj
Additive equations Time Limit: 10 Seconds Memory Limit: 32768 KB We all understand that an inte ...
- OpenCASCADE 包说明
转载地址:http://www.cppblog.com/eryar/archive/2012/06/30/180916.html 一.简介 Introduction to Package gp gp是 ...
- [XJOI]noip45 T2 图
***图*** 解题思路:这题的原题似乎好像是NOI某年的题目,然后数据改水了 于是就可以用一些简单的最短路算法水掉. 因为他是要求max(a)+max(b)的值,所以单纯的最短路是不行的 我们可以枚 ...
- YCbCr to RGB and RGB toYCbCr
RGB => YCbCr: Y = 0.299R + 0.587G + 0.114BCb = -0.1726R - 0.3388G + 0.5114B + 128Cr = 0.5114R - 0 ...
- 初学 Ajax(涉及 php)
一直知道 ajax 但是尚未真正了解, 这次看了慕课网的<Ajax全接触>,算是有所收获,入了个门. 需要用到php,因为 Ajax也是向服务器请求(不知道这么解释对不对), 所以还需要配 ...
- 纯CSS3文字Loading动画特效
纯CSS3文字Loading动画特效是一款个性的loading文字加载动画. 在线演示本地下载
- Android GoogleMap 谷歌地图从零开始
说明 由于国内使用v2最新的谷歌地图有很多限制,所有如果要在真机上测试运行要做一些准备 准备1: vpn必不可少啦 推荐cloud vpn或者betternet都是不错的免费vpn 准备2: 由于最新 ...
- sql server<> != 从数据类型varchar转换为numeric 时出错
sql server 数据类型转换出错 字段percentcomplete 是 varchar 类型, 都是存的数字 用 where cast(percentcomplete as numeric(1 ...
- 『转』The Beginning of your Design Career
想想,如果明天我开始学日语,坚持到毕业,其实也可以日语入门了.所以机会都是抓住,当初,也就是去年的时候,我那个时候就开始坚持日语入门,想想现在应该可以开始N2了吧-所以...过去不去理会,现在开始继续 ...