监听键盘的弹出与隐藏(界面跟随键盘一起上下移动)
2016-01-17 22:22
411 查看
今天说一下点击texeField时,让界面跟着键盘一起上下移动的方法步骤
(本人原创博客代码全部为自己手敲,然后复制过来给大家看)
1.让控制器监听键盘frame发生改变的通知 :UIKeyboardWillChangeFrameNotification
[[NSNotificationCenter defaultCenter] addObserver:selfselector:@selector(keyboardWillChangeFrame:)name:UIKeyboardWillChangeFrameNotification object:nil];
2.一旦键盘的frame发生改变,就执行一个自定义的方法,这个方法要有一个“通知”的参数
(NSNotification *)note
3.方法如下:
// 收到键盘frame发生变化的通知之后都会来调用此方法
- (void)keyboardWillChangeFrame:(NSNotification *)note
{
// 取出系统传过的键盘信息,是一个字典
NSDictionary *keyboardDict = note.userInfo;
// 字典里有keyboard的取出键盘变化之后的frame
CGRect keyboardFrame = [keyboardDict[UIKeyboardFrameEndUserInfoKey] CGRectValue];
//键盘怎么移动,文本框就怎么移动,键盘移动多少,文本框就移动多少,文本框时时刻刻跟着键盘走
// 用键盘的y - 控制器view的高 就得到控制器view要移动的位置
// 弹出后键盘的Y = 451 - 667 = -216
// 隐藏后键盘的y = 667 - 667 = 0;
CGFloat translationY = keyboardFrame.origin.y -self.view.bounds.size.height;
// 移动控制器view
//有了键盘的纵坐标 就可以动态控制
self.view.transform = CGAffineTransformMakeTranslation(0,
translationY);
}
4.一旦拖动屏幕就收起键盘
/** 将要开始拖拽屏幕时来调用此方法 */
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
[self.view endEditing:YES];// 退出键盘
}
(本人原创博客代码全部为自己手敲,然后复制过来给大家看)
1.让控制器监听键盘frame发生改变的通知 :UIKeyboardWillChangeFrameNotification
[[NSNotificationCenter defaultCenter] addObserver:selfselector:@selector(keyboardWillChangeFrame:)name:UIKeyboardWillChangeFrameNotification object:nil];
2.一旦键盘的frame发生改变,就执行一个自定义的方法,这个方法要有一个“通知”的参数
(NSNotification *)note
3.方法如下:
// 收到键盘frame发生变化的通知之后都会来调用此方法
- (void)keyboardWillChangeFrame:(NSNotification *)note
{
// 取出系统传过的键盘信息,是一个字典
NSDictionary *keyboardDict = note.userInfo;
// 字典里有keyboard的取出键盘变化之后的frame
CGRect keyboardFrame = [keyboardDict[UIKeyboardFrameEndUserInfoKey] CGRectValue];
//键盘怎么移动,文本框就怎么移动,键盘移动多少,文本框就移动多少,文本框时时刻刻跟着键盘走
// 用键盘的y - 控制器view的高 就得到控制器view要移动的位置
// 弹出后键盘的Y = 451 - 667 = -216
// 隐藏后键盘的y = 667 - 667 = 0;
CGFloat translationY = keyboardFrame.origin.y -self.view.bounds.size.height;
// 移动控制器view
//有了键盘的纵坐标 就可以动态控制
self.view.transform = CGAffineTransformMakeTranslation(0,
translationY);
}
4.一旦拖动屏幕就收起键盘
/** 将要开始拖拽屏幕时来调用此方法 */
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
[self.view endEditing:YES];// 退出键盘
}
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- 在 Linux 中如何移动文件
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 新注册
- ip地址基础知识
- VBS基础编程教程 (第1篇)
- VBS基础编程教程 (第3篇)
- 路由器基础精析
- PowerShell移动目录中指定文件的方法(非全部文件)
- 四大漏洞入侵博客
- 鼠标触发移动的分层菜单 层菜单moveMenu
- VBS基础编程教程 (第4篇)
- VBS基础编程教程 (第5篇)
- VBS基础编程教程 (第6篇)
- VBS编程教程 (第2篇)