//增加监听,当键盘出现或改变时收出消息
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
//增加监听,当键退出时收出消息
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
#pragma mark - 登陆按钮位置变动
//当键盘出现或改变时调用
- (void)keyboardWillShow:(NSNotification *)aNotification {
//获取键盘的高度
NSLog(@"%f",self.landButton.frame.origin.y);
NSDictionary *userInfo = [aNotification userInfo];
NSValue *aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
CGRect keyboardRect = [aValue CGRectValue];
int height = keyboardRect.size.height;
if (height==0) {
height = 282;
}
if (keyboardSportBool==NO) {
keyboardSportBool=YES;
CGRect landButtonRect = self.landButton.frame;
CGRect loginLabelRect = self.loginLabel.frame;
landButtonRect.origin.y-=(height/2);
loginLabelRect.origin.y-=(height/2);
self.landButton.frame = landButtonRect;
self.loginLabel.frame = loginLabelRect;
}
NSLog(@"%f",self.landButton.frame.origin.y);
}
//当键退出时调用
- (void)keyboardWillHide:(NSNotification *)aNotification{
NSDictionary *userInfo = [aNotification userInfo];
NSValue *aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
CGRect keyboardRect = [aValue CGRectValue];
int height = keyboardRect.size.height;
if (keyboardSportBool==YES) {
keyboardSportBool=NO;
CGRect landButtonRect = self.landButton.frame;
CGRect loginLabelRect = self.loginLabel.frame;
landButtonRect.origin.y+=(height/2);
loginLabelRect.origin.y+=(height/2);
self.landButton.frame = landButtonRect;
self.loginLabel.frame = loginLabelRect;
}
}
原文地址:http://blog.csdn.net/longshiqing14/article/details/45391051