1.監(jiān)聽鍵盤彈起
- (void)registerForKeyboardNotifications
{
//使用NSNotificationCenter 鍵盤出現(xiàn)時(shí)
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWasShown:)
name:UIKeyboardDidShowNotification object:nil];
}
2.實(shí)現(xiàn)當(dāng)鍵盤出現(xiàn)的時(shí)候計(jì)算鍵盤的高度大小。用于輸入框顯示位置
- (void)keyboardWasShown:(NSNotification*)aNotification
{
NSDictionary* info = [aNotification userInfo];
//kbSize即為鍵盤尺寸 (有width, height)
CGSize kbSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;//得到鍵盤的高度
NSLog(@"hight_hitht:%f",kbSize.height);
_keyboardhight = SCREEN_HEIGHT - kbSize.height;
//輸入框位置動(dòng)畫加載
[self begainMoveUpAnimation:_keyboardhight];
}
- (void)begainMoveUpAnimation:(CGFloat)hight
{
UITextField *tx = (UITextField *)[[self view] viewWithTag:_editingTag];
if ((tx.frame.origin.y+tx.bounds.size.height+10) > hight) {
[UIView animateWithDuration:0.5 animations:^{
[[self view] setFrame:CGRectMake(0, (hight - (tx.frame.origin.y+tx.bounds.size.height+10)), SCREEN_WIDTH, SCREEN_HEIGHT)];
}
completion:^(BOOL finished){
}];
}