做输入类页面的时候,经常要监听键盘弹起、收起的事件,对内容(一般是ScorllView)进行重新的布局,防止输入框被挡住。
下面的代码就是键盘事件通知的示例,供大家参考
首先,添加和移除通知
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification
object:nil];
}
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillHideNotification
object:nil];
}
之后,响应通知
- (void)keyboardWillShow:(NSNotification *)notification {
NSDictionary *userInfo = [notification userInfo];
NSValue *aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
CGRect keyboardRect = [aValue CGRectValue];
keyboardRect = [self.view convertRect:keyboardRect fromView:nil];
keyboardHeight = keyboardRect.size.height;
CGRect frame = self.view.bounds;
frame.size.height -= keyboardHeight;
self.contentScrollView.frame = frame;
self.contentScrollView.contentSize = CGSizeMake(SCREEN_WIDTH, CGRectGetMaxY(self.confirmBtn.frame)+ 20);
}
- (void)keyboardWillHide:(NSNotification *)notification {
keyboardHeight = 0;
self.contentScrollView.frame = self.view.bounds;
// self.contentScrollView.contentSize = self.view.bounds.size;
}
点击查看更多内容
12人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦