1.

  1. - (void)dealloc
  2. {
  3. [[NSNotificationCenter defaultCenter] removeObserver:self];
  4. }
  5.  
  6. - (void)registerNotification {
  7. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showKeyboard:) name:UIKeyboardWillShowNotification object:nil];
  8. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(hideKeyboard:) name:UIKeyboardWillHideNotification object:nil];
  9. }
  10.  
  11. #pragma mark - keyboard
  12. - (void)showKeyboard:(NSNotification *)noti {
  13. NSDictionary *info=[noti userInfo];
  14.  
  15. NSTimeInterval duration = [info[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
  16. UIViewAnimationOptions options = [info[UIKeyboardAnimationCurveUserInfoKey] unsignedIntegerValue] << ;
  17.  
  18. CGRect keyboardRect = [info[UIKeyboardFrameEndUserInfoKey] CGRectValue];
  19. CGFloat keyboardHeight = MIN(CGRectGetWidth(keyboardRect), CGRectGetHeight(keyboardRect));
  20.  
  21. [UIView animateWithDuration:duration delay: options:options animations:^{
  22. CGFloat compareH = self.tableView.contentSize.height -(self.view.height - - - keyboardHeight);
  23. if (compareH > ) {
  24. if (compareH < keyboardHeight) {
  25. self.tableView.transform = CGAffineTransformMakeTranslation(, -compareH);
  26. } else {
  27. self.tableView.transform = CGAffineTransformMakeTranslation(, -keyboardHeight);
  28. }
  29. }
  30.  
  31. self.bottomView.transform = CGAffineTransformMakeTranslation(, -keyboardHeight);
  32.  
  33. } completion:nil];
  34. }
  35.  
  36. - (void)hideKeyboard:(NSNotification *)noti {
  37.  
  38. NSDictionary *info=[noti userInfo];
  39.  
  40. NSTimeInterval duration = [info[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
  41. UIViewAnimationOptions options = [info[UIKeyboardAnimationCurveUserInfoKey] unsignedIntegerValue] << ;
  42.  
  43. [UIView animateWithDuration:duration delay: options:options animations:^{
  44.  
  45. self.tableView.transform = CGAffineTransformIdentity;
  46. self.bottomView.transform = CGAffineTransformIdentity;
  47.  
  48. } completion:nil];
  49.  
  50. }

第11月第31天 keyboardwillshow CGAffineTransformMakeTranslation的更多相关文章

  1. psp进度(11月25号-31号)

    本周psp进度 11月25号 内容 开始时间 结束时间 打断时间 净时间 处理数据集  9:27  11:34  12m  115m 11月27号 内容 开始时间 结束时间 打断时间 净时间  scr ...

  2. 「P4996」「洛谷11月月赛」 咕咕咕(数论

    题目描述 小 F 是一个能鸽善鹉的同学,他经常把事情拖到最后一天才去做,导致他的某些日子总是非常匆忙. 比如,时间回溯到了 2018 年 11 月 3 日.小 F 望着自己的任务清单: 看 iG 夺冠 ...

  3. .NET周报【11月第1期 2022-11-07】

    国内文章 开源·安全·赋能 - .NET Conf China 2022 https://mp.weixin.qq.com/s/_tYpfPeQgyEGsnR4vVLzHg .NET Conf Chi ...

  4. 本周psp(11月17-23)

    本周psp进度 11月19号 内容 开始时间 结束时间 打断时间 净时间 发布读书笔记 11:05 11:25 0 20m 看构建之法书 9:50 10:48 5m 53m 11月20号 内容 开始时 ...

  5. Autodesk 2013开发者日(DevDays)又要来了 -- 北京(2013年11月7日)和上海(2013年11月11日)

    各位, 一年一度的Autodesk 开发者日(Devdays)开始注册了,抓紧时间前排占座! 注册地址: www.autodesk.com.cn/adndevday2013 今年开发者日的主题:革命性 ...

  6. GTAC 2015将于11月10号和11号召开

    今年的GTAC注册已经结束,将会在11月10号和11号在Google马萨诸塞州剑桥办公室召开.大家可以关注https://developers.google.com/google-test-autom ...

  7. 2016年11月6日--form表单验证和事件、正则表达式

    1.表单验证<form></form> (1).非空验证(去空格) (2).对比验证(跟一个值对比) (3).范围验证(根据一个范围进行判断) (4).固定格式验证:电话号码, ...

  8. 11月30日《奥威Power-BI智能分析报表制作方法》腾讯课堂开课啦

    这么快一周就过去了,奥威公开课又要与大家见面咯,上节课老师教的三种报表集成方法你们都掌握了吗?大家都知道,学习的结果在于实际应用,想要熟练掌握新内容的要点就在于去应用它.正是基于这一要点,每一期的课程 ...

  9. 补psp进度(11月4号-9号)

    这周psp进度 11月4号 内容 开始时间 结束时间 打断时间 净时间 小伙伴聊天实现 9:45 10:49 0 64m 学习HttpURLConnection 14:13 15:48 10m 85m ...

随机推荐

  1. leetcode之有序数组的平方

    题目描述: 给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序. 示例 1: 输入:[-4,-1,0,3,10] 输出:[0,1,9,16,100] 示例 ...

  2. 微软职位内部推荐-Service Engineer for Office365

    微软近期Open的职位: Key Responsibilities: The Service Engineer in this team will be responsible for plannin ...

  3. ajax请求超时判断(转载)

    ajax请求时有个参数可以借鉴一下 var ajaxTimeOut = $.ajax({ url:'', //请求的URL timeout : 1000, //超时时间设置,单位毫秒 type : ' ...

  4. Linux内核分析第一周——计算机是如何工作的

    冯诺依曼体系结构 核心思想 1.冯诺依曼是:数字计算机的数制采用二进制:计算机应该按照程序顺序执行. 2.采用二进制作为计算机数值计算的基础,以0.1代表数值.不采用人类常用的十进制计数方法,二进制使 ...

  5. Objective-C 语言特点/特性

    Objective-C中 1.所有的类都必须继承自NSObject. 2.所有对象都是指针的形式. 3.用self代替this. 4.使用id代替void*. 5.使用nil表示NULL, 6.只支持 ...

  6. 组件 -- Button

    .btn --------------------------------- button的背景色: .btn-primary .btn-success .btn-secondary .btn-dan ...

  7. java词频统计——改进后的单元测试

    测试项目 博客文章地址:[http://www.cnblogs.com/jx8zjs/p/5862269.html] 工程地址:https://coding.net/u/jx8zjs/p/wordCo ...

  8. Linux下使用NTFS格式移动硬盘

    https://zhidao.baidu.com/question/66517344.html https://zhidao.baidu.com/question/586036510.html htt ...

  9. python + opencv 环境配置

    1.python 2.7.10 2.numpy 1.8.1 3.opencv2.4.8 4.OpenCV目录 ...\opencv\build\python\2.7" 下 "cv2 ...

  10. helm 替换源的方法

    网上找了一个 helm 替换源的方法 挺好用的 mark 一下 helm repo remove stable helm repo add stable https://kubernetes.oss- ...