键盘监听与IQKeyboardManager配合使用

项目中做了一个底部输入框跟随键盘弹起上移收起返回,只用IQKeyboardManager的时候系统键盘和三方键盘切换的时候底部输入框就自动回收了,而且系统键盘的时候底部输入框弹不起来所以给键盘添加监听以后问题就解决了

//监听当键盘将要出现时
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardWillShow:)
                                                 name:UIKeyboardWillShowNotification
                                               object:nil];
    
    //监听当键将要退出时
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardWillHide:)
                                                 name:UIKeyboardWillHideNotification
                                               object:nil];
//当键盘出现
- (void)keyboardWillShow:(NSNotification *)notification
{
    //获取键盘的高度
    NSDictionary *userInfo = [notification userInfo];
    NSValue *value = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
    CGRect keyboardRect = [value CGRectValue];
    int height = keyboardRect.size.height;
    
    [self.view bringSubviewToFront:self.scrollView];
    [UIView animateWithDuration:0.5 animations:^{
        CGRect frame = self.bottomView.frame;
        frame.origin.y = self.view.height - height - SKWidth(46);
        self.bottomView.frame = frame;
    }];
}

//当键退出
- (void)keyboardWillHide:(NSNotification *)notification
{
    //获取键盘的高度
    NSDictionary *userInfo = [notification userInfo];
    NSValue *value = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
    CGRect keyboardRect = [value CGRectValue];
    int height = keyboardRect.size.height;
    if (height == 0) {
        
        [self.view sendSubviewToBack:self.scrollView];
        
    }
    
    [self.view bringSubviewToFront:self.scrollView];
    [UIView animateWithDuration:0.5 animations:^{
        CGRect frame = self.bottomView.frame;
        frame.origin.y = self.view.height - self.bottomView.height;
        self.bottomView.frame = frame;
    }];
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,056评论 3 119
  • 写作原因:看三方库源码总不知道该看什么或者能学到什么,写文章无疑是最好的药;并且我在简书上搜了一下相关文章都不是很...
    Thebloodelves阅读 14,254评论 32 59
  • 参考目录 json-sercer地址:GitHubVue :Vue ps: 在写demo的时候需要用到一些动态数据...
    每天都睡不醒阅读 5,342评论 0 1
  • 1,提倡异常封装 友好性:阅读者,开发人员需要查找问题,需要打印出堆栈信息,而用户需要了解具体业务原因,如文件太大...
    泪水渲染眼眶的懵懂_dbb6阅读 1,787评论 0 0
  • 当记忆消磁,我们还剩下什么?在人生尽头体温散去,不安的三魂七魄是否也将如此魂飞魄散?有一段时间我一直反覆做着解构的...
    TS小西阅读 1,328评论 1 0

友情链接更多精彩内容