博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift3.0 监控键盘的弹出与收回
阅读量:3748 次
发布时间:2019-05-22

本文共 1544 字,大约阅读时间需要 5 分钟。

1.注册/移除通知

override func viewDidLoad() {        super.viewDidLoad()        NotificationCenter.default.addObserver(self, selector: #selector(keyBoardWillShow(_:)), name: NSNotification.Name.UIKeyboardWillShow, object: nil)        NotificationCenter.default.addObserver(self, selector: #selector(keyBoardWillHide(_:)), name: NSNotification.Name.UIKeyboardWillHide, object: nil)    } deinit {  //移除通知  NotificationCenter.default.removeObserver(self)    } 
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11

2.实现通知中的方法

//键盘的出现    func keyBoardWillShow(_ notification: Notification){        //获取userInfo        let kbInfo = notification.userInfo        //获取键盘的size        let kbRect = (kbInfo?[UIKeyboardFrameEndUserInfoKey] as! NSValue).cgRectValue        //键盘的y偏移量        let changeY = kbRect.origin.y - SCREEN_HEIGHT        //键盘弹出的时间        let duration = kbInfo?[UIKeyboardAnimationDurationUserInfoKey] as! Double       //界面偏移动画        UIView.animate(withDuration: duration) {            self.aTableView.transform = CGAffineTransform(translationX: 0, y: changeY)        }    }    //键盘的隐藏    func keyBoardWillHide(_ notification: Notification){        let kbInfo = notification.userInfo        let kbRect = (kbInfo?[UIKeyboardFrameEndUserInfoKey] as! NSValue).cgRectValue        let changeY = kbRect.origin.y        let duration = kbInfo?[UIKeyboardAnimationDurationUserInfoKey] as! Double        UIView.animate(withDuration: duration) {           self.tableViewConstraint.update(inset: 0)        }    }

转载地址:http://dvfsn.baihongyu.com/

你可能感兴趣的文章
Linux网络命令
查看>>
一天教会三岁表弟HTML,你值得拥有
查看>>
CSS基础汇总
查看>>
SpringCloud服务注册与发现
查看>>
SpringCloud Stream 消息驱动
查看>>
SpringCloud Sleuth 分布式请求链路
查看>>
SpringCloud Alibaba 入门简介
查看>>
SpringCloud Alibaba Nacos 服务注册和配置中心
查看>>
poi读写Excel
查看>>
使用Security安全框架实现权限登录
查看>>
JDBC工具类 使用Durid连接池链接MySQL数据库
查看>>
ANSYS——模态提取方法简介
查看>>
ANSYS——初学路径之路径的定义、作用以及ansys路径模块GUI的操作解释
查看>>
ANSYS——网格划分的不同方法以及GUI模块的操作(自由网格、映射网格、扫掠、拖拉)
查看>>
ANSYS——命令流学习(材料属性设置、建模的命令流)
查看>>
ANSYS——杆单元简介与示例(含新版本2019版本杆实常数设置、ANSYS help的使用、单元列表使用的举例)
查看>>
ANSYS——后处理中单元表(ELEMENT table)的作用、创建、使用
查看>>
在VScode上配置golang的开发环境
查看>>
leetcode每日一题---680. 验证回文字符串 Ⅱ
查看>>
leetcode每日一题---15. 三数之和
查看>>