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 ...
随机推荐
- Git 工具 - 子模块
子模块 有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目. 也许是第三方库,或者你独立开发的,用于多个父项目的库. 现在问题来了:你想要把它们当做两个独立的项目,同时又想在一个项目中使 ...
- Node.js:多进程
ylbtech-Node.js:多进程 1.返回顶部 1. Node.js 多进程 我们都知道 Node.js 是以单线程的模式运行的,但它使用的是事件驱动来处理并发,这样有助于我们在多核 cpu 的 ...
- Java-Zipkin:Zipkin 介绍
ylbtech-Java-Zipkin:Zipkin 介绍 1.返回顶部 1. 介绍 Zipkin 是一款开源的分布式实时数据追踪系统(Distributed Tracking System),基于 ...
- Netty简单介绍(非原创)
文章大纲 一.Netty基础介绍二.Netty代码实战三.项目源码下载四.参考文章 一.Netty基础介绍 1. 简介 官方定义为:”Netty 是一款异步的事件驱动的网络应用程序框架,支持快速地 ...
- Redis五种数据类型及应用场景
MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加 ...
- VS2015启动显示无法访问此网站
之前启动项目发生过几次,也忘了怎么解决了,今天记录一下:将应用文件夹下的vs目录删除,重新生成解决方案后,程序正常启动. 原文链接:https://blog.csdn.net/upi2u/articl ...
- IM系统中如何保证消息的可靠投递(即QoS机制)
消息的可靠性,即消息的不丢失和不重复,是im系统中的一个难点.当初qq在技术上(当时叫oicq)因为以下两点原因才打败了icq:1)qq的消息投递可靠(消息不丢失,不重复)2)qq的垃圾消息少(它 ...
- Self-hosting Sentry With Docker and Docker-compose
If a user encounters an error but you don't know about, did it happen at all? Sentry is one of the s ...
- oc的属性
Declared property A declared property provides a syntactical shorthand for declaring a class’s acces ...
- Sublime + Chrome 本地调试 CSS 选择器
生成简单的 HTML 代码 使用MacDown写 Markdown,快捷键ALT+CMD+C拷贝成 HTML 代码 粘贴到 Sublime 中,加上 body 标签和 css 头 html <h ...