#pragma mark - 键盘弹出 textFiled自动上移
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
[self animateTextField: textField up: YES];
[self btnSelect];
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
//编辑完成回到初始位置 CGRect rect = CGRectMake(x,64,width,height); 看情况修改
[UIView beginAnimations:@"anim" context: nil];
[UIView setAnimationBeginsFromCurrentState: YES];
float width = self.view.frame.size.width;
float height = self.view.frame.size.height;
float x = self.view.frame.origin.x;
CGRect rect = CGRectMake(x,64,width,height);
self.view.frame = rect;
[UIView commitAnimations];
[self btnSelect];
}
- (void)animateTextField: (UITextField*) textField up: (BOOL) up
{
//计算当前控件在屏幕上的位置
// SCREENHEIGHT = CGRectGetHeight([UIScreen mainScreen].bounds)
UIWindow * window = [[[UIApplication sharedApplication] delegate] window];
CGRect rect = [textField convertRect:textField.bounds toView:window];
NSLog(@"++%f -- %f %f",rect.origin.y,rect.size.height,SCREENHEIGHT);
if(SCREENHEIGHT - (rect.origin.y + 30) < 216){ //键盘高216 30控件的高度
const int movementDistance = 216 - (SCREENHEIGHT - (rect.origin.y + 30)); // tweak as needed
[UIView beginAnimations: @"anim" context: nil];
[UIView setAnimationBeginsFromCurrentState: YES];
float width = self.view.frame.size.width;
float height = self.view.frame.size.height;
float x = self.view.frame.origin.x;
float y = self.view.frame.origin.y;
CGRect rect = CGRectMake(x,y - movementDistance,width,height);
self.view.frame = rect;
[UIView commitAnimations];
}
}