您的位置:首页 > 其它

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

2012-11-30 11:06 357 查看
- (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];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: