• iOS开发第三方库一 IQKeyboardManager


    每一个iOS应用的开发者在工作中都会遇到需要用户键盘输入数据的需求,而输入框(UITextField/UITextView)的父界面可能是普通的UIView,也可能是UIScrollView,UITableView,UICollectionView 等。而如果输入框位于屏幕的底部,弹起的键盘很可能覆盖输入框,导致用户就看不到输入结果,体验较差。

    IQKeyboardManager 为此应运而生,使用IQKeyboardManager可以很容易地解决弹起键盘遮盖输入框的问题,并且易于集成,不需要侵入性地继承特定的类,也不需要实现某些奇怪的协议,满足大部分需求只需要少于5行代码。更让人惊喜的是IQKeyboardManager已经提供Swift版本。

    IQKeyboardManager 官方例子下载地址


    官方效果图

    首先下载第三方库源码导入已有项目中(也可以使用CocoaPods), 然后只需要一行代码就可控制自动键盘处理事件在整个项目内是否启用。

    // iOS delegate内应用入口

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

        //关闭设置为NO, 默认值为NO.

        [IQKeyboardManager sharedManager].enable = YES;

    }

    如果产品需要当键盘弹起时,点击背景收起键盘,也是一行代码解决。

    [IQKeyboardManager sharedManager].shouldResignOnTouchOutside = YES;

    而当产品需要支持内联编辑(Inline Editing), 这就需要隐藏键盘上的工具条(默认打开)

    [IQKeyboardManager sharedManager].enableAutoToolbar = NO;

    如果当某一个输入框特定不需要键盘上的工具条时,一行代码

    textField.inputAccessoryView = [[UIView alloc] init];

    如果因为不知名的原因需要在某个页面禁止自动键盘处理事件相应,也很简单。

    - (void) viewWillAppear: (BOOL)animated {

            //打开键盘事件相应

              [IQKeyboardManager sharedManager].enable = NO;

    }

    - (void) viewWillDisappear: (BOOL)animated {

            //关闭键盘事件相应

              [IQKeyboardManager sharedManager].enable = YES;

    }

    另外IQKeyboardManager支持屏幕旋转功能,这对一些应用特别有用。



    转自:http://www.jianshu.com/p/01c0682003a9
  • 相关阅读:
    今天,我们来聊一聊互联网真的有你所期待的那么好吗?来自一个老码农的碎碎念
    新鲜出炉!阿里Java后端面经,已拿offer!
    面试阿里,字节跳动,美团必被问到的红黑树原来这么简单
    凭借着这份Spring面试题,我拿到了阿里,字节跳动美团的offer!
    深度分析:理解Java中的多态机制,一篇直接帮你掌握!
    gdb调试core dump使用
    665. Non-decreasing Array
    netstat命令详解
    ifconfig命令
    #paragma详解
  • 原文地址:https://www.cnblogs.com/-yun/p/7403944.html
Copyright © 2020-2023  润新知