首先我们要注册键盘弹出和弹入的通知

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardWillShow:)
                                                 name:UIKeyboardWillShowNotification
                                               object:nil];
    
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardWillHide:)
                                                 name:UIKeyboardWillHideNotification
                                               object:nil];

//Code from Brett Schumann

-(void) keyboardWillShow:(NSNotification *)note{
    // get keyboard size and loctaion
    CGRect keyboardBounds;
    [[note.userInfo valueForKey:UIKeyboardFrameEndUserInfoKey] getValue: &keyboardBounds];
    NSNumber *duration = [note.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey];
    NSNumber *curve = [note.userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey];
    
    // Need to translate the bounds to account for rotation.
    keyboardBounds = [self.view convertRect:keyboardBounds toView:nil];
    
    // get a rect for the textView frame
    CGRect btnFrame = self.editView.frame;
    btnFrame.origin.y = self.view.bounds.size.height - (keyboardBounds.size.height + btnFrame.size.height);
    // animations settings
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationBeginsFromCurrentState:YES];
    [UIView setAnimationDuration:[duration doubleValue]];
    [UIView setAnimationCurve:[curve intValue]];
    [UIView setAnimationDelegate:self];
    
    // set views with new info
    self.editView.frame = btnFrame;
    // commit animations
    [UIView commitAnimations];
    
       
    
}

- (void) keyboardWillHide:(NSNotification *)note{
    NSNumber *duration = [note.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey];
    NSNumber *curve = [note.userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey];
    
    // get a rect for the textView frame
    CGRect btnFrame = self.editView.frame;
    btnFrame.origin.y = self.view.bounds.size.height + btnFrame.size.height;
    
    // animations settings
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationBeginsFromCurrentState:YES];
    [UIView setAnimationDuration:[duration doubleValue]];
    [UIView setAnimationCurve:[curve intValue]];
    
    // set views with new info
    self.editView.frame = btnFrame;
    
    // commit animations
    [UIView commitAnimations];
    
   }

iOS键盘弹出通知后加入动画相关推荐

  1. iOS键盘弹出时动画时长失效问题

    iOS键盘弹出动画问题 今天在写键盘弹出时遇见一个问题.监听UIKeyboardWillShowNotification通知让Label做一个移动的动画,指定duration为15,但动画实际完成时间 ...

  2. 成品app直播源码,iOS键盘弹出遮挡输入框

    成品app直播源码,iOS键盘弹出遮挡输入框解决的相关代码 self.phoneInput = [UITextField new];self.phoneInput.placeholder = @&qu ...

  3. ios 键盘弹出input输入框被遮挡 键盘隐藏时页面无法回弹解决方案

    ios 微信键盘弹出input输入框被遮挡 键盘隐藏时页面无法回弹解决方案 问题:测试发现ios微信端浏览器中,键盘弹出后,输入框被软键盘遮挡,input失焦后,因软键盘顶起的页面没有回弹到原来位置, ...

  4. Android11键盘弹出动画,(2016-11-04完美解决)移动端iOS第三方输入法遮挡底部input及android键盘回落后留白问题...

    问题概述 问题1:H5 web 移动端 输入框, 键盘唤起后fixed定位好的元素跟随页面滚动了起来- fixed属性失效了!满屏任性横飞, 如下图: 问题2:有几后来含些在到气时按式近篇来又的方浏消 ...

  5. Android页面监听虚拟键盘弹出、收起

    js 移动端关于页面布局,如果底部有 position: fixed 的盒子, 又有input,当软键盘弹出收起都会影响页面布局. 如图: 页面这时候Android可以监听resize事件,代码如下, ...

  6. 解决Android软键盘弹出覆盖h5页面输入框问题 // 在ios系统中输入框软键盘消失后,页面不回弹的问题 // 解决苹果不回弹页面 // 微信环境打开

    //解决Android软键盘弹出覆盖h5页面输入框问题 window.addEventListener('resize', () => {if (document.activeElement.t ...

  7. swift实现ios类似微信输入框跟随键盘弹出的效果

    为什么要做这个效果 在聊天app,例如微信中,你会注意到一个效果,就是在你点击输入框时输入框会跟随键盘一起向上弹出,当你点击其他地方时,输入框又会跟随键盘一起向下收回,二者完全无缝连接,那么这是怎么实 ...

  8. ios输入框的坑(软键盘弹出不灵敏、输入法影响弹出高度)

    参考地址: https://segmentfault.com/a/1190000018959389 https://blog.csdn.net/github_37533433/article/deta ...

  9. android 设置键盘弹出动画,Android实现键盘弹出界面上移的实现思路

    1.首先说一下思路: 基本就是结合layout中ScrollView视图和AndroidManifest.xml中activity中的android:windowSoftInputMode属性配置实现 ...

最新文章

  1. Oracle11g密码忘记处理方法
  2. C#中将字符串内容写入到txt文件中
  3. 类加载器-扩展加载器
  4. 计算机电源外形,电源外观及铭牌解析_HKC电源_机箱电源评测-中关村在线
  5. 原作者出局!Faker.js已被社区控制。。
  6. 获取 视频 音频 及其他文件的真实信息(不靠文件后缀判断) (getID3())
  7. 小猪猪C++笔记基础篇(四)数组、指针、vector、迭代器
  8. 第一太阳能公司(First Solar)在罗斯资本公司的评级上调
  9. TCC-Transaction TCC 实现
  10. java语言与c++语言相比_最突出的特点是_Java 语言与C++语言相比,最突出的特点是( )。_学小易找答案...
  11. 初学Python之谈
  12. 移动端WEB开发,click,touch,tap事件浅析
  13. 大数据时代如何安全使用WIFI
  14. vue项目中的回车登录
  15. 解决办法:error: item inner element must either be a resource reference or empty.
  16. 液压伺服控制系统设计
  17. 易基因 | 文献速递:重亚硫酸盐扩增子测序研究通过DNA甲基化监测急性髓系白血病MRD
  18. java 登录失败 显示在页面上_用友NC系统“登陆后页面显示不完全”,怎么办?...
  19. java geojson和数据库_GeoJson和TopoJson数据格式的对比
  20. Python多线程编程之线程子类化

热门文章

  1. ppt文件限打开次数_PPT冷知识25条!看到第一条我就翻了车…
  2. rpm oracle 离线,在CentOS中离线安装Oracle之安装准备
  3. linux怎样服务,如何在linux添加服务
  4. 如何实现动态加载删除android,关于android:融云IMKit-动态删除或添加plugin-的实现...
  5. python对象三个特性_python面向对象的三大特性
  6. unity3d软阴影和硬阴影的原理_Unity3D中两种默认阴影的实现
  7. 继BAT之后 第四大巨头是谁
  8. asp.net发送邮件
  9. 【转载】 详细介绍Flex中操作XML
  10. vs中c++项目的配置