//增加监听,当键盘出现或改变时收出消息
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
//增加监听,当键退出时收出消息
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification
object:nil];
//当键盘出现或改变时调用
- (void)keyboardWillShow:(NSNotification *)aNotification
{
//获取键盘的高度
NSDictionary *userInfo = [aNotification userInfo];
NSValue *aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
CGRect keyboardRect = [aValue CGRectValue];
int height = keyboardRect.size.height;
[self.view bringSubviewToFront:self.chatSessionInputBarControl];
[UIView animateWithDuration:0.4 animations:^{
self.midView.frame = CGRectMake(0, 64, VIEW_WIDTH, 42);
self.scrollView.frame = CGRectMake(0, 64+42, self.view.frame.size.width, VIEW_HEIGHT-height-64-42-50);
self.conversationMessageCollectionView.contentOffset = CGPointMake(0, 820);
}];
}
//当键退出时调用
- (void)keyboardWillHide:(NSNotification *)aNotification {
[UIView animateWithDuration:0.4 animations:^{
self.midView.frame = CGRectMake(0, 160, VIEW_WIDTH, 42);
self.scrollView.frame = CGRectMake(0, 160+42, self.view.frame.size.width, self.view.frame.size.height-160-50-42);
self.conversationMessageCollectionView.contentOffset = CGPointMake(0, 660);
}];
}