李洪强iOS开发之- 点击屏幕遮挡键盘

实现的效果: 

01 - 给当前的view添加点击事件,使点击屏幕的时候,让键盘退出

/**
* 点击屏幕 隐藏键盘
*
* @param tap
*/
-(void)keyboardHide:(UITapGestureRecognizer*)tap
{
[self.view endEditing:YES];
}

UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(keyboardHide:)];
//设置成NO表示当前控件响应后会传播到其他控件上,默认为YES。
tapGestureRecognizer.cancelsTouchesInView = NO;
//将触摸事件添加到当前view
[self.view addGestureRecognizer:tapGestureRecognizer];

#import "CFShoppingCartViewController.h"

02 - 实现点击输入框 的时候,让当前的view整体上移,目的是不遮盖当前的输入框

03 - 实现textview的代理

#pragma mark --- 实现UITextView的代理---

-(void)textViewDidChange:(UITextView *)textView

{

_textView11.text = textView.text;

if (textView.text.length == 0) {

_label11.text = @"有什么需要补充的";

}else{

_label11.text = @"";

}

}

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView{

_label11.text = @"";

//  [self.label1 removeFromSuperview];

return YES;

}

- (BOOL)textViewShouldEndEditing:(UITextView *)textView{

_label11.text = @"";

return YES;

}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

[UIView animateWithDuration:0.8 animations:^{

[self.view endEditing:YES];

}];

}

 03 - 键盘的通知

#pragma mark — 键盘遮挡

-(void)createNotifiticationCenter

{

//创建通知中心

NSNotificationCenter * center = [NSNotificationCenter defaultCenter];

//键盘弹出

[center addObserver:self selector:@selector(receivesKeyBordShowNotification:) name:UIKeyboardWillShowNotification object:nil];

//监听键盘收回时发送的通知

[center addObserver:self selector:@selector(receivesKeyBordHiddenNotification:) name:UIKeyboardWillHideNotification object:nil];

}

-(void)receivesKeyBordShowNotification:(NSNotification *)noti

{

//取出键盘的弹起时间

NSTimeInterval time = [[noti.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey]doubleValue];

//在键盘的这段时间内将界面上的控件上移

//使用动画

[UIView animateWithDuration:time delay:0 options:0 animations:^{

//将界面整体上移

CGRect boubds = self.view.bounds;

boubds.origin.y = 170;

self.view.bounds = boubds;

} completion:^(BOOL finished) {

}];

}

-(void)receivesKeyBordHiddenNotification:(NSNotification *)notifi

{

//从通知信息体取出键盘收回的时间

NSTimeInterval time = [[notifi.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey]doubleValue];

//用动画将界面下移

[UIView animateWithDuration:time delay:0 options:0 animations:^{

CGRect bounds = self.view.bounds;

bounds.origin.y = 0;

self.view.bounds = bounds;

} completion:^(BOOL finished) {

}];

}

李洪强iOS开发之- 点击屏幕遮挡键盘的更多相关文章

  1. 李洪强iOS开发之-实现点击单行View显示和隐藏Cell

    李洪强iOS开发之-实现点击单行View显示和隐藏Cell 实现的效果:  .... ....

  2. 李洪强iOS开发之-环信05_EaseUI 使用指南

    李洪强iOS开发之-环信05_EaseUI 使用指南 EaseUI 使用指南 简介 EaseUI 封装了 IM 功能常用的控件(如聊天会话.会话列表.联系人列表).旨在帮助开发者快速集成环信 SDK. ...

  3. 李洪强iOS开发之-环信01_iOS SDK 前的准备工作

    李洪强iOS开发之-环信01_iOS SDK 前的准备工作 1.1_注册环信开发者账号并创建后台应用 详细步骤:  注册并创建应用 注册环信开发者账号 第 1 步:在环信官网上点击“即时通讯云”,并点 ...

  4. 李洪强iOS开发之静态库的打包一

    李洪强iOS开发之静态库的打包一 //静态库一般做一下几种事情 //1 工具类 算法逻辑 新建工具类LHQTools 定义类方法 + (NSInteger)sumWithNum1: (NSIntege ...

  5. 李洪强iOS开发之录音和播放实现

    李洪强iOS开发之录音和播放实现 //首先导入框架后,导入头文件.以下内容为托控件,在storyboard中拖出两个按钮为录音和播放按钮 //创建一个UIViewController在.h文件中写 # ...

  6. 李洪强iOS开发之添加手势

    李洪强iOS开发之添加手势 02 - 添加手势

  7. 李洪强iOS开发之- 实现简单的弹窗

     李洪强iOS开发之- 实现简单的弹窗 实现的效果:  112222222222223333333333333333

  8. 李洪强iOS开发之后使用XIB实现横向滚动的UIScrollView

    李洪强iOS开发之后使用XIB实现横向滚动的UIScrollView 11111222

  9. 李洪强iOS开发之苹果使用预览截图

    李洪强iOS开发之苹果使用预览截图 01 在预览的图片中选中你要截得区域  02 - command + C   03 - Command + N 04 - Command + S (保存)

随机推荐

  1. 85. Spring Boot集成RabbitMQ【从零开始学Spring Boot】

    这一节我们介绍下Spring Boot整合RabbitMQ,对于RabbitMQ这里不过多的介绍,大家可以参考网络上的资源进行安装配置,本节重点是告诉大家如何在Spring Boot中使用Rabbit ...

  2. jquery滚动条插件slimScroll

    参数 width: 'auto', //可滚动区域宽度         height: '100%', //可滚动区域高度         size: '10px', //组件宽度         c ...

  3. 【Luogu】P2831愤怒的小鸟(手算抛物线+状压DP)

    题目链接 设f[s]表示二进制集合表示下的s集合都打掉用了多少小鸟. 预处理出lne[i][j]表示i.j确定的抛物线能打掉的小鸟集合. 于是就有f[s|lne[i][j]]=min(f[s|lne[ ...

  4. Classloader中loadClass()方法和Class.forName()区别

    Classloader中loadClass()方法和Class.forName()都能得到一个class对象,那这两者得到的class对象有什么区别呢 1.java类装载的过程 Java类装载有三个步 ...

  5. response.sendRedirect(location)与rd.forward()区别

    在Java Web开发中,经常会用到跳转页面的方法,一般有下面两种方法. HttpServletResponse response = new HttpServletResponse(); respo ...

  6. 手把手教你搭建DHCP服务器

    目录 DHCP实现原理 DHCP定义 DHCP分配方式 DHCP工作过程 初次登录 重新登录 更新租约 搭建DHCP服务器 实验目的 实验环境 实验步骤 实验结果 DHCP实现原理 DHCP定义 DH ...

  7. cout与cerr

    cout对应于标准输出流,默认情况下是显示器.这是一个被缓冲的输出,可以被重定向. cerr对应标准错误流,用于显示错误消息.默认情况下被关联到标准输出流,但它不被缓冲,也就说错误消息可以直接发送到显 ...

  8. 隐藏video标签的下载按钮

    问题: 使用video标签时,有些浏览器会显示视频的下载按钮,而这并不是我们需要的功能,必须想办法去掉. 解决方法: 使用下面的css可以达到隐藏下载按钮的效果,但是点击下载的位置,还是能出现开始下载 ...

  9. iOS 读书笔记 第一章

    1.确定某个实例或类方法是否可用. 1)使用NSObject的类方法instancesRespondToSelector:来确定是否在该类的一个实例中存在一个特定的选择器. NSArray *arra ...

  10. 【深入Java虚拟机】之五:多态性实现机制——静态分派与动态分派

    方法解析 Class文件的编译过程中不包含传统编译中的连接步骤,一切方法调用在Class文件里面存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址.这个特性给Java带来了更强大的动态扩 ...