- (void)dealloc{
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"post" object:nil];
[[NSNotificationCenter defaultCenter]removeObserver:self name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter]removeObserver:self name:UIKeyboardWillHideNotification object:nil];
}
- (instancetype)init{
if (self=[super init]) {
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(noti:) name:@"post" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyBoard:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyBoardHide) name:UIKeyboardWillHideNotification object:nil];
}
return self;
}
- (void)noti:(NSNotification *)not{
typeStr = not.object;
}
//键盘出现
-(void)keyBoard:(NSNotification*)noti{
// 通过字典 获取到 键盘的结束高度
NSValue *frameValue = [noti.userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
CGRect rect = [frameValue CGRectValue];
CGFloat height = rect.size.height;
// 通过字典 获取到 键盘的显示时上弹动画的时间
NSNumber *number = [noti.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey];
[UIView animateWithDuration:[number doubleValue] animations:^{
// _scrollView.contentOffset = CGPointMake(0, _scrollView.contentSize.height-_scrollView.height+height);
_scrollView.contentSize=CGSizeMake(0,bottomView.bottom+height);
}];
}
//键盘消失
-(void)keyBoardHide{
[UIView animateWithDuration:.08 animations:^{
// _scrollView.contentOffset = CGPointMake(0,_scrollView.contentSize.height-_scrollView.height-216);
_scrollView.contentSize=CGSizeMake(0,bottomView.bottom);
}];
}
转载于:https://my.oschina.net/wenchengxu123/blog/491908