0
点赞
收藏
分享

微信扫一扫

显示或隐藏键盘改变tableView高度

- (void)registerKeybordNotification

{

NSNotificationCenter *notification = [NSNotificationCenter defaultCenter];

[notification removeObserver:self];



[notification addObserver:self

selector:@selector(showKeyboard:)

name:UIKeyboardWillShowNotification

object:nil];



[notification addObserver:self

selector:@selector(hideKeyboard:)

name:UIKeyboardWillHideNotification

object:nil];



#ifdef __IPHONE_5_0

// 5.0以上系统中文键盘高度与4.0系统不一样

float version = [[[UIDevice currentDevice] systemVersion] floatValue];

if (version >= 5.0) {

[notification addObserver:self

selector:@selector(showKeyboard:)

name:UIKeyboardWillChangeFrameNotification

object:nil];

}

#endif

}


- (void)showKeyboard:(NSNotification *)notification

{

NSDictionary *userInfo = [notification userInfo];

NSValue *aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];

CGFloat keyboardHeight = CGRectGetHeight([aValue CGRectValue]);

CGFloat height = CGRectGetHeight(self.view.frame) - self.barHeight - keyboardHeight;



/* 使用动画效果,过度更加平滑 */

[UIView beginAnimations:nil context:nil];

[UIView setAnimationDuration:0.1];

{

CGRect rect = _tableView.frame;

rect.size.height = height;

_tableView.frame = rect;

}

[UIView commitAnimations];

}


- (void)hideKeyboard:(NSNotification *)notification

{

[UIView beginAnimations:nil context:nil];

[UIView setAnimationDuration:0.1];

{

CGRect rect = _tableView.frame;

rect.size.height = CGRectGetHeight(self.view.frame) - self.barHeight;

_tableView.frame = rect;

}

[UIView commitAnimations];

}

举报

相关推荐

0 条评论