zoukankan      html  css  js  c++  java
  • 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种类型。常见的就能够啦。。


    源代码:

    点击这里   或者       点我


  • 相关阅读:
    JVM基础
    JVM基础
    python相关
    charles 的配置与使用
    大型缓存架构实战
    redis环境搭建
    多线程与并发 | 线程池
    JVM | 内存溢出和解决方案
    读书笔记 | Mysql是怎样运行的
    读书笔记 | Java并发编程实战
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4070958.html
Copyright © 2011-2022 走看看