iOS -键盘显示与隐藏
2016-07-28 10:55
363 查看
目前我所接触到的键盘处理方法有两种,第一种是通过约束,第二种是通过transform。
上面是第一种方法,简单来说就是通过底部约束来达到这样一个效果。
(如果有新方法欢迎回帖
// 监听键盘通知 -(void)viewDidLoad{ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; }
<pre name="code" class="objc"> - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; }
#pragma mark - 键盘处理 - (void)keyboardWillShow:(NSNotification *)note { // 取出键盘最终的frame CGRect rect = [note.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue]; // 取出键盘弹出需要花费的时间 double duration = [note.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue]; // 修改约束 self.bottomSpacing.constant = rect.size.height; [UIView animateWithDuration:duration animations:^{ [self.view layoutIfNeeded]; }]; } - (void)keyboardWillHide:(NSNotification *)note { // 取出键盘弹出需要花费的时间 double duration = [note.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue]; // 修改约束 self.bottomSpacing.constant = 0; [UIView animateWithDuration:duration animations:^{ [self.view layoutIfNeeded]; }]; }
上面是第一种方法,简单来说就是通过底部约束来达到这样一个效果。
// 监听键盘通知 -(void)viewDidLoad{ // 监听键盘通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotification object:nil]; } - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; } #pragma mark - 键盘处理 - (void)keyboardWillChangeFrame:(NSNotification *)note { // 取出键盘最终的frame CGRect rect = [note.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue]; // 取出键盘弹出需要花费的时间 double duration = [note.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue]; // 修改transform [UIView animateWithDuration:duration animations:^{ CGFloat ty = [UIScreen mainScreen].bounds.size.height - rect.origin.y; self.view.transform = CGAffineTransformMakeTranslation(0, - ty); }]; }第二种方法就是通过transform将整个屏幕的view向上移动或向下移动一个键盘的高度。
(如果有新方法欢迎回帖
相关文章推荐
- IOS点击事件的PickerView和ToolBar
- ios 企业发布
- iOS之下拉放大,上推缩小,一个方法搞定
- iOS 圆角图片
- HP Notebook PCs - Updating the BIOS
- iOS原生App与H5页面交互 离线缓存 笔记
- 总结iOS中runtime的使用
- iOS开发之AFNetworking 3.0.4使用-OC
- IOS-github优秀开源项目大全
- iOS调试技巧(转载)
- 下滑隐藏导航栏 上滑出现
- 一个方法搞定iOS下拉放大及上推缩小
- 重启iOS之路--再见虚华的自己
- 地图导航ios(url)
- iOS支付宝的使用
- ios 内存管理重要知识点
- iOS 第三方框架 - CocoaPods的安装、使用、原理
- 整理 iOS 9 适配中出现的坑
- iOS杂记——category分类、extension扩展、protocol协议
- iOS git的使用