1、 设置委托
在.h文件的第一行interface中要有设置
@interface MyCard : UIViewController <UITextFieldDelegate> 2、将定义的TextField委托设置为自己
在xib文件设置文本框的delegate与file'owner连接,或者在m文件用代码实现代理的连接(文本控件.delegate=self)
3、.m文件中加入以下方法
-(void)textFieldDidBeginEditing:(UITextField *)textField { [self animateTextField:textField up:YES]; } - (void)textFieldDidEndEditing:(UITextField *)textField { [self animateTextField:textField up:NO]; } -(void)animateTextField:(UITextField *)textField up:(BOOL)up { const int movementDistance = 80; const float movementDuration = 0.3f; int movement = (up?-movementDistance:movementDistance); [UIView beginAnimations:@"anim" context:nil]; [UIView setAnimationBeginsFromCurrentState:YES]; [UIView setAnimationDuration:movementDuration]; self.view.frame = CGRectOffset(self.view.frame, 0, movement); [UIView commitAnimations]; }