监听键盘弹起View上调
2024-10-14 10:03:22
可以用三方库IQKeyboardManager 用这个第三方
http://www.jianshu.com/p/f8157895
#pragma mark - keyboard events - ///键盘显示事件
- (void) keyboardWillShow:(NSNotification *)notification {
//获取键盘高度,在不同设备上,以及中英文下是不同的
CGFloat kbHeight = [[notification.userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size.height; //计算出键盘顶端到inputTextView panel底端的距离(加上自定义的缓冲距离INTERVAL_KEYBOARD)
CGFloat offset = (panelInputTextView.frame.origin.y+panelInputTextView.frame.size.height+INTERVAL_KEYBOARD) - (self.view.frame.size.height - kbHeight); // 取得键盘的动画时间,这样可以在视图上移的时候更连贯
double duration = [[notification.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]; //将视图上移计算好的偏移
if(offset > ) {
[UIView animateWithDuration:duration animations:^{
self.view.frame = CGRectMake(0.0f, -offset, self.view.frame.size.width, self.view.frame.size.height);
}];
}
} ///键盘消失事件
- (void) keyboardWillHide:(NSNotification *)notify {
// 键盘动画时间
double duration = [[notify.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]; //视图下沉恢复原状
[UIView animateWithDuration:duration animations:^{
self.view.frame = CGRectMake(, , self.view.frame.size.width, self.view.frame.size.height);
}];
}
//计算出键盘顶端到inputTextView panel底端的距离(加上自定义的缓冲距离INTERVAL_KEYBOARD)
CGFloat offset = (panelInputTextView.frame.origin.y+panelInputTextView.frame.size.height+INTERVAL_KEYBOARD) - (self.view.frame.size.height - kbHeight);
最新文章
- 【笔记】JS基础一
- BurpSuite 抓手机包
- Could not load file or assembly 'MySql.Data.CF,
- sublime配置java编译环境
- conv2、filter2、imfilter的区别
- 【Todo】Nginx架构学习
- DataTable常用操作
- Facebook 正式开源其大数据查询引擎 Presto
- windows系统各版本 各种数据结构
- Android 使用网络ADB调试.
- view components介绍
- 基于spring多数据源动态调用及其事务处理
- velocity 新手用小常识--开源,简单易上手
- 1、IT人思维之投资开篇 - IT人思维之投资
- delphi dbgrid 修改、更新、删除
- Python学习笔记第十五周
- java jdk版本切换
- 使用IntelliJ IDEA 搭建 spring mvc开发环境
- BackBone及其实例探究
- 006.Zabbix添加监控主机